[INFO] cloning repository https://github.com/ammar-abu-yaman/rusty-lox
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/ammar-abu-yaman/rusty-lox" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fammar-abu-yaman%2Frusty-lox", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fammar-abu-yaman%2Frusty-lox'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] a0af47a40ce15e7b2f8f316a706b0913b03fba36
[INFO] testing ammar-abu-yaman/rusty-lox against try#28f95933dc0727396c07b48d0a8cb5211b7fb472 for pr-154065-2
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fammar-abu-yaman%2Frusty-lox" "/workspace/builds/worker-3-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-3-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/ammar-abu-yaman/rusty-lox
[INFO] finished tweaking git repo https://github.com/ammar-abu-yaman/rusty-lox
[INFO] tweaked toml for git repo https://github.com/ammar-abu-yaman/rusty-lox written to /workspace/builds/worker-3-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/ammar-abu-yaman/rusty-lox on toolchain 28f95933dc0727396c07b48d0a8cb5211b7fb472
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+28f95933dc0727396c07b48d0a8cb5211b7fb472" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/ammar-abu-yaman/rusty-lox already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+28f95933dc0727396c07b48d0a8cb5211b7fb472" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+28f95933dc0727396c07b48d0a8cb5211b7fb472" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 3160ac93a65ab28f41df7e4dfd11c8298432db12261377f5d9239cb4e364bc1d
[INFO] running `Command { std: "docker" "start" "-a" "3160ac93a65ab28f41df7e4dfd11c8298432db12261377f5d9239cb4e364bc1d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "3160ac93a65ab28f41df7e4dfd11c8298432db12261377f5d9239cb4e364bc1d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "3160ac93a65ab28f41df7e4dfd11c8298432db12261377f5d9239cb4e364bc1d", kill_on_drop: false }`
[INFO] [stdout] 3160ac93a65ab28f41df7e4dfd11c8298432db12261377f5d9239cb4e364bc1d
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+28f95933dc0727396c07b48d0a8cb5211b7fb472" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] e97e40bae3c3be35caea533380ec53e63cc165e498456b89d15b9e3d4dbf1fc1
[INFO] running `Command { std: "docker" "start" "-a" "e97e40bae3c3be35caea533380ec53e63cc165e498456b89d15b9e3d4dbf1fc1", kill_on_drop: false }`
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]    Compiling colorchoice v1.0.5
[INFO] [stderr]    Compiling anstyle v1.0.14
[INFO] [stderr]    Compiling clap_lex v1.1.0
[INFO] [stderr]    Compiling bytes v1.11.1
[INFO] [stderr]    Compiling anstyle-parse v1.0.0
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling anyhow v1.0.102
[INFO] [stderr]    Compiling anstream v1.0.0
[INFO] [stderr]    Compiling clap_builder v4.6.0
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling clap_derive v4.6.1
[INFO] [stderr]    Compiling num-derive v0.4.2
[INFO] [stderr]    Compiling thiserror v1.0.69
[INFO] [stderr]    Compiling clap v4.6.1
[INFO] [stderr]    Compiling codecrafters-interpreter v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused `#[macro_use]` import
[INFO] [stdout]  --> src/main.rs:1:1
[INFO] [stdout]   |
[INFO] [stdout] 1 | #[macro_use]
[INFO] [stdout]   | ^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tree_walker::TreeWalk`
[INFO] [stdout]  --> src/interpreter/mod.rs:7:9
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub use tree_walker::TreeWalk;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]   --> src/interpreter/vm/object.rs:36:13
[INFO] [stdout]    |
[INFO] [stdout] 35 |             String { value, .. } => &value,
[INFO] [stdout]    |             -------------------- matches all the relevant values
[INFO] [stdout] 36 |             _ => panic!("Expected a string, got {:?}", self),
[INFO] [stdout]    |             ^ no value can reach this
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/main.rs:45:9
[INFO] [stdout]    |
[INFO] [stdout] 45 |     let mut file = File::open(filename);
[INFO] [stdout]    |         ----^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Evaluator` is never used
[INFO] [stdout]   --> src/interpreter/mod.rs:11:11
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub trait Evaluator<'a, 't> {
[INFO] [stdout]    |           ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Interpreter` is never used
[INFO] [stdout]   --> src/interpreter/mod.rs:15:11
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub trait Interpreter<'a, 't> {
[INFO] [stdout]    |           ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Result` is never used
[INFO] [stdout]   --> src/interpreter/mod.rs:22:10
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub type Result<'a, 't, T> = anyhow::Result<T, RuntimeError<'a, 't>>;
[INFO] [stdout]    |          ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `RuntimeError` is never used
[INFO] [stdout]   --> src/interpreter/mod.rs:25:10
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub enum RuntimeError<'a, 't> {
[INFO] [stdout]    |          ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TreeWalk` is never constructed
[INFO] [stdout]   --> src/interpreter/tree_walker/mod.rs:19:12
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub struct TreeWalk<'a, 't> {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/interpreter/tree_walker/mod.rs:25:12
[INFO] [stdout]    |
[INFO] [stdout] 24 | impl TreeWalk<'_, '_> {
[INFO] [stdout]    | --------------------- associated function in this implementation
[INFO] [stdout] 25 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/interpreter/tree_walker/mod.rs:59:8
[INFO] [stdout]     |
[INFO] [stdout]  58 | impl<'a, 't> TreeWalk<'a, 't> {
[INFO] [stdout]     | ----------------------------- methods in this implementation
[INFO] [stdout]  59 |     fn eval_stmt(&mut self, statement: &'a Statement<'t>) -> Result<'a, 't, ()> {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  73 |     fn eval_class_decl(&mut self, stmt: &'a ClassDecl<'t>) -> Result<'a, 't, ()> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 113 |     fn eval_var_decl(&mut self, stmt: &'a VariableDecl<'t>) -> Result<'a, 't, ()> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 123 |     fn eval_fun_decl(&mut self, stmt: &'a FunctionDecl<'t>) -> Result<'a, 't, ()> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 131 |     fn eval_print_stmt(&mut self, stmt: &PrintStatement<'t>) -> Result<'a, 't, ()> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 137 |     fn eval_return_stmt(&mut self, stmt: &ReturnStatement<'t>) -> Result<'a, 't, ()> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 145 |     fn eval_block_stmt(&mut self, stmts: &'a [Statement<'t>], env: BoxedEnvironment<'a, 't>) -> Result<'a, 't, ()> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 161 |     fn eval_expr_stmt(&mut self, stmt: &ExpressionStatement<'t>) -> Result<'a, 't, ()> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 166 |     fn eval_if_stmt(&mut self, stmt: &'a IfStatemnet<'t>) -> Result<'a, 't, ()> {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 176 |     fn eval_while_stmt(&mut self, stmt: &'a WhileStatement<'t>) -> Result<'a, 't, ()> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 183 |     fn eval_expr(&mut self, expr: &Expr<'t>) -> Result<'a, 't, Value<'a, 't>> {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 201 |     fn eval_super(&mut self, keyword: &Token<'t>, method: &Token<'t>, height: &Cell<Option<usize>>) -> Result<'a, 't, Value<'a, 't>> {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 215 |     fn eval_assignment(&mut self, name: &Token<'t>, value: &Box<Expr<'t>>, height: &Cell<Option<usize>>) -> Result<'a, 't, Value<'a...
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 224 |     fn eval_variable(&mut self, name: &Token<'t>, height: &Cell<Option<usize>>) -> Result<'a, 't, Value<'a, 't>> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 231 |     fn eval_this(&mut self, keyword: &Token<'t>, height: &Cell<Option<usize>>) -> Result<'a, 't, Value<'a, 't>> {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 238 |     fn eval_get(&mut self, object: &Expr<'t>, name: &Token<'t>) -> Result<'a, 't, Value<'a, 't>> {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 245 |     fn eval_set(&mut self, object: &Expr<'t>, name: &Token<'t>, value: &Expr<'t>) -> Result<'a, 't, Value<'a, 't>> {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 254 |     fn eval_or(&mut self, left: &Expr<'t>, right: &Expr<'t>) -> Result<'a, 't, Value<'a, 't>> {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 263 |     fn eval_and(&mut self, left: &Expr<'t>, right: &Expr<'t>) -> Result<'a, 't, Value<'a, 't>> {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 272 |     fn eval_call(&mut self, callee: &Expr<'t>, paren: &Token<'t>, args: &[Expr<'t>]) -> Result<'a, 't, Value<'a, 't>> {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 302 |     fn eval_binary(&mut self, left: &Expr<'t>, operator: &Token<'t>, right: &Expr<'t>) -> Result<'a, 't, Value<'a, 't>> {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 338 |     fn eval_unary(&mut self, operator: &Token<'t>, expr: &Expr<'t>) -> Result<'a, 't, Value<'a, 't>> {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `lookup_var` is never used
[INFO] [stdout]    --> src/interpreter/tree_walker/mod.rs:355:8
[INFO] [stdout]     |
[INFO] [stdout] 354 | impl<'a, 't> TreeWalk<'a, 't> {
[INFO] [stdout]     | ----------------------------- method in this implementation
[INFO] [stdout] 355 |     fn lookup_var(&self, name: &Token<'t>, height: Option<usize>) -> Option<Value<'a, 't>> {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_true` is never used
[INFO] [stdout]    --> src/interpreter/tree_walker/mod.rs:363:10
[INFO] [stdout]     |
[INFO] [stdout] 363 | const fn is_true(value: &Value) -> bool {
[INFO] [stdout]     |          ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Class` is never constructed
[INFO] [stdout]   --> src/interpreter/tree_walker/class.rs:12:12
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub struct Class<'a, 't> {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/interpreter/tree_walker/class.rs:19:12
[INFO] [stdout]    |
[INFO] [stdout] 18 | impl<'a, 't> Class<'a, 't> {
[INFO] [stdout]    | -------------------------- associated function in this implementation
[INFO] [stdout] 19 |     pub fn new(name: &'t str, methods: HashMap<&'t str, Rc<Function<'a, 't>>>, superclass: Option<Rc<Class<'a, 't>>>) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `init` and `arity` are never used
[INFO] [stdout]   --> src/interpreter/tree_walker/class.rs:25:12
[INFO] [stdout]    |
[INFO] [stdout] 24 | impl<'a, 't> Class<'a, 't> {
[INFO] [stdout]    | -------------------------- associated items in this implementation
[INFO] [stdout] 25 |     pub fn init(
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 37 |     pub fn arity(&self) -> usize {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `method` is never used
[INFO] [stdout]   --> src/interpreter/tree_walker/class.rs:43:12
[INFO] [stdout]    |
[INFO] [stdout] 42 | impl<'a, 't> Class<'a, 't> {
[INFO] [stdout]    | -------------------------- method in this implementation
[INFO] [stdout] 43 |     pub fn method(&self, name: &str) -> Option<Rc<Function<'a, 't>>> {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `BoxedEnvironment` is never used
[INFO] [stdout]  --> src/interpreter/tree_walker/env.rs:9:10
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub type BoxedEnvironment<'a, 't> = Rc<RefCell<Environment<'a, 't>>>;
[INFO] [stdout]   |          ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `ValueMap` is never used
[INFO] [stdout]   --> src/interpreter/tree_walker/env.rs:10:10
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub type ValueMap<'a, 't> = HashMap<String, Value<'a, 't>>;
[INFO] [stdout]    |          ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Environment` is never constructed
[INFO] [stdout]   --> src/interpreter/tree_walker/env.rs:13:12
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub struct Environment<'a, 't> {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `new`, `boxed`, and `boxed_with_enclosing` are never used
[INFO] [stdout]   --> src/interpreter/tree_walker/env.rs:19:12
[INFO] [stdout]    |
[INFO] [stdout] 18 | impl<'a, 't> Environment<'a, 't> {
[INFO] [stdout]    | -------------------------------- associated functions in this implementation
[INFO] [stdout] 19 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 26 |     pub fn boxed() -> BoxedEnvironment<'a, 't> {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 30 |     pub fn boxed_with_enclosing(enclosing: &BoxedEnvironment<'a, 't>) -> BoxedEnvironment<'a, 't> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `enclosing`, `get`, `get_at`, `define`, `assign`, and `assign_at` are never used
[INFO] [stdout]   --> src/interpreter/tree_walker/env.rs:45:12
[INFO] [stdout]    |
[INFO] [stdout] 44 | impl<'a, 't> Environment<'a, 't> {
[INFO] [stdout]    | -------------------------------- methods in this implementation
[INFO] [stdout] 45 |     pub fn enclosing(&self) -> Option<BoxedEnvironment<'a, 't>> {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 49 |     pub fn get(&self, name: &str) -> Option<Value<'a, 't>> {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 59 |     pub fn get_at(&self, name: &str, height: usize) -> Option<Value<'a, 't>> {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 66 |     pub fn define(&mut self, name: impl Into<String>, value: Value<'a, 't>) {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 70 |     pub fn assign(&mut self, name: Token<'t>, value: Value<'a, 't>) -> Result<(), RuntimeError<'a, 't>> {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 83 |     pub fn assign_at(&mut self, name: Token<'t>, value: Value<'a, 't>, height: usize) {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `FunctionType` is never used
[INFO] [stdout]   --> src/interpreter/tree_walker/function.rs:12:10
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub enum FunctionType {
[INFO] [stdout]    |          ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Function` is never constructed
[INFO] [stdout]   --> src/interpreter/tree_walker/function.rs:27:12
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub struct Function<'a, 't> {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/interpreter/tree_walker/function.rs:36:12
[INFO] [stdout]    |
[INFO] [stdout] 35 | impl<'a, 't> Function<'a, 't> {
[INFO] [stdout]    | ----------------------------- associated function in this implementation
[INFO] [stdout] 36 |     pub fn new(decl: &'a FunctionDecl<'t>, env: BoxedEnvironment<'a, 't>, is_init: bool) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `bind` is never used
[INFO] [stdout]   --> src/interpreter/tree_walker/function.rs:48:12
[INFO] [stdout]    |
[INFO] [stdout] 47 | impl<'a, 't> Function<'a, 't> {
[INFO] [stdout]    | ----------------------------- method in this implementation
[INFO] [stdout] 48 |     pub fn bind(&self, instance: &Rc<RefCell<Instance<'a, 't>>>) -> Self {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `call` and `arity` are never used
[INFO] [stdout]   --> src/interpreter/tree_walker/function.rs:68:12
[INFO] [stdout]    |
[INFO] [stdout] 67 | impl<'a, 't> Function<'a, 't> {
[INFO] [stdout]    | ----------------------------- methods in this implementation
[INFO] [stdout] 68 |     pub fn call(&self, interpreter: &mut impl Interpreter<'a, 't>, args: Vec<Value<'a, 't>>) -> anyhow::Result<Value<'a, 't>, Runtim...
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 83 |     pub fn arity(&self) -> usize {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `NativeFunction` is never constructed
[INFO] [stdout]    --> src/interpreter/tree_walker/function.rs:106:12
[INFO] [stdout]     |
[INFO] [stdout] 106 | pub struct NativeFunction<'a, 't> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `new` and `clock` are never used
[INFO] [stdout]    --> src/interpreter/tree_walker/function.rs:113:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | impl<'a, 't> NativeFunction<'a, 't> {
[INFO] [stdout]     | ----------------------------------- associated functions in this implementation
[INFO] [stdout] 113 |     pub fn new(name: &'static str, arity: usize, native: fn(Vec<Value<'a, 't>>) -> anyhow::Result<Value<'a, 't>, RuntimeError<'a, '...
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 117 |     pub fn clock() -> Self {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `call` and `arity` are never used
[INFO] [stdout]    --> src/interpreter/tree_walker/function.rs:134:12
[INFO] [stdout]     |
[INFO] [stdout] 133 | impl<'a, 't> NativeFunction<'a, 't> {
[INFO] [stdout]     | ----------------------------------- methods in this implementation
[INFO] [stdout] 134 |     pub fn call(&self, args: Vec<Value<'a, 't>>) -> anyhow::Result<Value<'a, 't>, RuntimeError<'a, 't>> {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 138 |     pub fn arity(&self) -> usize {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `clock` is never used
[INFO] [stdout]    --> src/interpreter/tree_walker/function.rs:149:4
[INFO] [stdout]     |
[INFO] [stdout] 149 | fn clock<'a, 't>(_args: Vec<Value<'a, 't>>) -> anyhow::Result<Value<'a, 't>, RuntimeError<'a, 't>> {
[INFO] [stdout]     |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Instance` is never constructed
[INFO] [stdout]   --> src/interpreter/tree_walker/instance.rs:12:12
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub struct Instance<'a, 't> {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `new` and `boxed` are never used
[INFO] [stdout]   --> src/interpreter/tree_walker/instance.rs:18:12
[INFO] [stdout]    |
[INFO] [stdout] 17 | impl<'a, 't> Instance<'a, 't> {
[INFO] [stdout]    | ----------------------------- associated functions in this implementation
[INFO] [stdout] 18 |     pub fn new(class: Rc<Class<'a, 't>>) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 22 |     pub fn boxed(class: Rc<Class<'a, 't>>) -> Rc<RefCell<Self>> {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `get` and `set` are never used
[INFO] [stdout]   --> src/interpreter/tree_walker/instance.rs:28:12
[INFO] [stdout]    |
[INFO] [stdout] 27 | impl<'a, 't> Instance<'a, 't> {
[INFO] [stdout]    | ----------------------------- associated items in this implementation
[INFO] [stdout] 28 |     pub fn get(this: &Rc<RefCell<Self>>, name: &Token<'t>) -> Result<Value<'a, 't>, RuntimeError<'a, 't>> {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 38 |     pub fn set(&mut self, name: &'t str, value: Value<'a, 't>) {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `as_mut_object` is never used
[INFO] [stdout]   --> src/interpreter/vm/value.rs:49:12
[INFO] [stdout]    |
[INFO] [stdout] 27 | impl Value {
[INFO] [stdout]    | ---------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 49 |     pub fn as_mut_object(&mut self) -> &mut Object {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `error_unkown_symbol` is never used
[INFO] [stdout]  --> src/log.rs:4:8
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub fn error_unkown_symbol(line: u64, s: &str) {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `error` is never used
[INFO] [stdout]  --> src/log.rs:8:8
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub fn error(line: u64, err: &str) {
[INFO] [stdout]   |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `error_token` is never used
[INFO] [stdout]   --> src/log.rs:12:8
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub fn error_token(token: &Token, err: &str) {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `error_runtime` is never used
[INFO] [stdout]   --> src/log.rs:20:8
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub fn error_runtime(err: &RuntimeError) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `token` is never used
[INFO] [stdout]   --> src/log.rs:24:8
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub fn token(token: &Token) {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `token_value` is never used
[INFO] [stdout]   --> src/log.rs:28:8
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub fn token_value(token: &Token) -> String {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `token_name` is never used
[INFO] [stdout]   --> src/log.rs:37:14
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub const fn token_name(token: &Token) -> &'static str {
[INFO] [stdout]    |              ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Parser` is never used
[INFO] [stdout]   --> src/parser.rs:12:11
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub trait Parser<'t> {
[INFO] [stdout]    |           ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `RecursiveDecendantParser` is never constructed
[INFO] [stdout]   --> src/parser.rs:17:12
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub struct RecursiveDecendantParser<'t> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ParseError` is never used
[INFO] [stdout]   --> src/parser.rs:24:6
[INFO] [stdout]    |
[INFO] [stdout] 24 | enum ParseError {
[INFO] [stdout]    |      ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/parser.rs:32:12
[INFO] [stdout]    |
[INFO] [stdout] 31 | impl RecursiveDecendantParser<'_> {
[INFO] [stdout]    | --------------------------------- associated function in this implementation
[INFO] [stdout] 32 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/parser.rs:68:8
[INFO] [stdout]     |
[INFO] [stdout]  67 | impl<'t> RecursiveDecendantParser<'t> {
[INFO] [stdout]     | ------------------------------------- methods in this implementation
[INFO] [stdout]  68 |     fn program(&self) -> Vec<Statement<'t>> {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  82 |     fn declaration(&self) -> Result<Statement<'t>, ParseError> {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  92 |     fn class_declaration(&self) -> Result<ClassDecl<'t>, ParseError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 116 |     fn variable_declaration(&self) -> Result<VariableDecl<'t>, ParseError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 130 |     fn function_declaration(&self, kind: FunctionType) -> Result<FunctionDecl<'t>, ParseError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 142 |     fn parameters(&self) -> Result<Vec<Token<'t>>, ParseError> {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 158 |     fn statement(&self) -> Result<Statement<'t>, ParseError> {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 171 |     fn block_statement(&self, block_type: Option<FunctionType>) -> Result<BlockStatement<'t>, ParseError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 188 |     fn if_statement(&self) -> Result<IfStatemnet<'t>, ParseError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 209 |     fn while_statement(&self) -> Result<WhileStatement<'t>, ParseError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 218 |     fn return_statement(&self) -> Result<ReturnStatement<'t>, ParseError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 228 |     fn desugar_for_statement(&self) -> Result<Statement<'t>, ParseError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 277 |     fn print_statement(&self) -> Result<PrintStatement<'t>, ParseError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 284 |     fn expression_statement(&self) -> Result<ExpressionStatement<'t>, ParseError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 290 |     fn expression(&self) -> Result<Expr<'t>, ParseError> {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 294 |     fn assignment(&self) -> Result<Expr<'t>, ParseError> {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 311 |     fn logical_or(&self) -> Result<Expr<'t>, ParseError> {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 321 |     fn logical_and(&self) -> Result<Expr<'t>, ParseError> {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 334 |     fn equality(&self) -> Result<Expr<'t>, ParseError> {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 348 |     fn comparision(&self) -> Result<Expr<'t>, ParseError> {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 363 |     fn term(&self) -> Result<Expr<'t>, ParseError> {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 374 |     fn factor(&self) -> Result<Expr<'t>, ParseError> {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 385 |     fn unary(&self) -> Result<Expr<'t>, ParseError> {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 397 |     fn call(&self) -> Result<Expr<'t>, ParseError> {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 424 |     fn arguments(&self) -> Result<Vec<Expr<'t>>, ParseError> {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 435 |     fn primary(&self) -> Result<Expr<'t>, ParseError> {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `peek`, `advance`, `consume`, and `synchronize` are never used
[INFO] [stdout]    --> src/parser.rs:472:8
[INFO] [stdout]     |
[INFO] [stdout] 471 | impl<'t> RecursiveDecendantParser<'t> {
[INFO] [stdout]     | ------------------------------------- methods in this implementation
[INFO] [stdout] 472 |     fn peek(&self) -> Token<'t> {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 480 |     fn advance(&self) -> Token<'t> {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 488 |     fn consume(&self, tt: TokenType, message: impl Into<String>) -> Result<Token<'t>, ParseError> {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 498 |     fn synchronize(&self) {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ScopeType` is never used
[INFO] [stdout]   --> src/resolver.rs:10:6
[INFO] [stdout]    |
[INFO] [stdout] 10 | enum ScopeType {
[INFO] [stdout]    |      ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ClassType` is never used
[INFO] [stdout]   --> src/resolver.rs:17:6
[INFO] [stdout]    |
[INFO] [stdout] 17 | enum ClassType {
[INFO] [stdout]    |      ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Resolver` is never constructed
[INFO] [stdout]   --> src/resolver.rs:23:12
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub struct Resolver<'a> {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `has_err` are never used
[INFO] [stdout]   --> src/resolver.rs:31:12
[INFO] [stdout]    |
[INFO] [stdout] 30 | impl<'a> Resolver<'a> {
[INFO] [stdout]    | --------------------- associated items in this implementation
[INFO] [stdout] 31 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 40 |     pub fn has_err(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/resolver.rs:52:12
[INFO] [stdout]     |
[INFO] [stdout]  51 | impl<'a> Resolver<'a> {
[INFO] [stdout]     | --------------------- methods in this implementation
[INFO] [stdout]  52 |     pub fn resolve_stmt(&mut self, stmt: &'a Statement) {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  66 |     fn resolve_class_decl(&mut self, stmt: &'a ClassDecl) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 100 |     fn resolve_var_decl(&mut self, stmt: &'a VariableDecl) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 108 |     fn resolve_block_stmt(&mut self, stmt: &'a BlockStatement) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 116 |     fn resolve_print_stmt(&mut self, stmt: &'a PrintStatement) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 120 |     fn resolve_expr_stmt(&mut self, stmt: &'a ExpressionStatement) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 124 |     fn resolve_if_stmt(&mut self, stmt: &'a IfStatemnet) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 132 |     fn resolve_while_stmt(&mut self, stmt: &'a WhileStatement) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 137 |     fn resolve_fun_decl(&mut self, stmt: &'a FunctionDecl) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 143 |     fn resolve_function(&mut self, params: &'a Vec<Token>, stmts: &'a Vec<Statement>, scope_type: ScopeType) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 156 |     fn resolve_return_stmt(&mut self, stmt: &'a ReturnStatement) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `resolve_expr` is never used
[INFO] [stdout]    --> src/resolver.rs:172:12
[INFO] [stdout]     |
[INFO] [stdout] 171 | impl<'a> Resolver<'a> {
[INFO] [stdout]     | --------------------- method in this implementation
[INFO] [stdout] 172 |     pub fn resolve_expr(&mut self, expr: &'a Expr) {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `begin_scope`, `end_scope`, `declare`, `define`, and `annotate` are never used
[INFO] [stdout]    --> src/resolver.rs:224:8
[INFO] [stdout]     |
[INFO] [stdout] 223 | impl<'a> Resolver<'a> {
[INFO] [stdout]     | --------------------- methods in this implementation
[INFO] [stdout] 224 |     fn begin_scope(&mut self) {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 228 |     fn end_scope(&mut self) {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 232 |     fn declare(&mut self, name: &'a Token) {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 245 |     fn define(&mut self, name: &'a str) {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 251 |     fn annotate(&mut self, name: &str, height: &Cell<Option<usize>>) {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `scan_all` is never used
[INFO] [stdout]   --> src/scanner.rs:35:12
[INFO] [stdout]    |
[INFO] [stdout] 34 | impl<'t> Scanner {
[INFO] [stdout]    | ---------------- method in this implementation
[INFO] [stdout] 35 |     pub fn scan_all(&'t self) -> Vec<Token<'t>> {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `BoxedExpr` is never used
[INFO] [stdout]   --> src/syntax.rs:10:10
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub type BoxedExpr<'t> = Box<Expr<'t>>;
[INFO] [stdout]    |          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `BoxedStatement` is never used
[INFO] [stdout]   --> src/syntax.rs:11:10
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub type BoxedStatement<'t> = Box<Statement<'t>>;
[INFO] [stdout]    |          ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Statement` is never used
[INFO] [stdout]   --> src/syntax.rs:14:10
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub enum Statement<'t> {
[INFO] [stdout]    |          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ClassDecl` is never constructed
[INFO] [stdout]   --> src/syntax.rs:27:12
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub struct ClassDecl<'t> {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `FunctionDecl` is never constructed
[INFO] [stdout]   --> src/syntax.rs:34:12
[INFO] [stdout]    |
[INFO] [stdout] 34 | pub struct FunctionDecl<'t> {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `VariableDecl` is never constructed
[INFO] [stdout]   --> src/syntax.rs:41:12
[INFO] [stdout]    |
[INFO] [stdout] 41 | pub struct VariableDecl<'t> {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PrintStatement` is never constructed
[INFO] [stdout]   --> src/syntax.rs:47:12
[INFO] [stdout]    |
[INFO] [stdout] 47 | pub struct PrintStatement<'t> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BlockStatement` is never constructed
[INFO] [stdout]   --> src/syntax.rs:53:12
[INFO] [stdout]    |
[INFO] [stdout] 53 | pub struct BlockStatement<'t> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `IfStatemnet` is never constructed
[INFO] [stdout]   --> src/syntax.rs:58:12
[INFO] [stdout]    |
[INFO] [stdout] 58 | pub struct IfStatemnet<'t> {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ReturnStatement` is never constructed
[INFO] [stdout]   --> src/syntax.rs:65:12
[INFO] [stdout]    |
[INFO] [stdout] 65 | pub struct ReturnStatement<'t> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `WhileStatement` is never constructed
[INFO] [stdout]   --> src/syntax.rs:71:12
[INFO] [stdout]    |
[INFO] [stdout] 71 | pub struct WhileStatement<'t> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ExpressionStatement` is never constructed
[INFO] [stdout]   --> src/syntax.rs:77:12
[INFO] [stdout]    |
[INFO] [stdout] 77 | pub struct ExpressionStatement<'t> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Expr` is never used
[INFO] [stdout]   --> src/syntax.rs:82:10
[INFO] [stdout]    |
[INFO] [stdout] 82 | pub enum Expr<'t> {
[INFO] [stdout]    |          ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Value` is never used
[INFO] [stdout]    --> src/syntax.rs:137:10
[INFO] [stdout]     |
[INFO] [stdout] 137 | pub enum Value<'a, 't> {
[INFO] [stdout]     |          ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Literal` is never used
[INFO] [stdout]    --> src/syntax.rs:160:10
[INFO] [stdout]     |
[INFO] [stdout] 160 | pub enum Literal<'t> {
[INFO] [stdout]     |          ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated functions are never used
[INFO] [stdout]    --> src/syntax.rs:194:12
[INFO] [stdout]     |
[INFO] [stdout] 193 | impl<'t> Expr<'t> {
[INFO] [stdout]     | ----------------- associated functions in this implementation
[INFO] [stdout] 194 |     pub fn grouping(expr: Expr<'t>) -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 198 |     pub fn unary(operator: Token<'t>, expr: Expr<'t>) -> Self {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 205 |     pub fn binary(left: Expr<'t>, operator: Token<'t>, right: Expr<'t>) -> Self {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 213 |     pub fn variable(name: Token<'t>, height: Cell<Option<usize>>) -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 217 |     pub fn assign(name: Token<'t>, value: Expr<'t>) -> Self {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 225 |     pub fn or(left: Expr<'t>, right: Expr<'t>) -> Self {
[INFO] [stdout]     |            ^^
[INFO] [stdout] ...
[INFO] [stdout] 232 |     pub fn and(left: Expr<'t>, right: Expr<'t>) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 239 |     pub fn call(callee: Expr<'t>, paren: Token<'t>, args: Vec<Expr<'t>>) -> Self {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 247 |     pub fn get(object: Expr<'t>, name: Token<'t>) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 254 |     pub fn set(object: BoxedExpr<'t>, name: Token<'t>, value: Expr<'t>) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 262 |     pub fn this(keyword: Token<'t>) -> Self {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 269 |     pub fn literal(literal: Literal<'t>) -> Self {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 273 |     pub fn super_(keyword: Token<'t>, method: Token<'t>) -> Self {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `offset` is never read
[INFO] [stdout]   --> src/token.rs:53:9
[INFO] [stdout]    |
[INFO] [stdout] 51 | pub struct TokenPosition {
[INFO] [stdout]    |            ------------- field in this struct
[INFO] [stdout] 52 |     pub line: u64,
[INFO] [stdout] 53 |     pub offset: u64,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TokenPosition` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]   --> src/main.rs:40:9
[INFO] [stdout]    |
[INFO] [stdout] 40 |         vm.interpret(&line);
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]    = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 40 |         let _ = vm.interpret(&line);
[INFO] [stdout]    |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]   --> src/main.rs:52:5
[INFO] [stdout]    |
[INFO] [stdout] 52 |     vm.interpret(&source);
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 52 |     let _ = vm.interpret(&source);
[INFO] [stdout]    |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/interpreter/vm/mod.rs:117:21
[INFO] [stdout]     |
[INFO] [stdout] 117 |                     writeln!(self.writer, "{}", value);
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 117 |                     let _ = writeln!(self.writer, "{}", value);
[INFO] [stdout]     |                     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/interpreter/vm/mod.rs:206:9
[INFO] [stdout]     |
[INFO] [stdout] 206 |         write!(self.writer, "{:04} ", offset);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 206 |         let _ = write!(self.writer, "{:04} ", offset);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/interpreter/vm/mod.rs:210:13
[INFO] [stdout]     |
[INFO] [stdout] 210 |             write!(self.writer, "   | ");
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 210 |             let _ = write!(self.writer, "   | ");
[INFO] [stdout]     |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/interpreter/vm/mod.rs:212:13
[INFO] [stdout]     |
[INFO] [stdout] 212 |             write!(self.writer, "{:4} ", chunk.lines[offset]);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 212 |             let _ = write!(self.writer, "{:4} ", chunk.lines[offset]);
[INFO] [stdout]     |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/interpreter/vm/mod.rs:217:17
[INFO] [stdout]     |
[INFO] [stdout] 217 |                 writeln!(self.writer, "OP_RETURN");
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 217 |                 let _ = writeln!(self.writer, "OP_RETURN");
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/interpreter/vm/mod.rs:221:17
[INFO] [stdout]     |
[INFO] [stdout] 221 |                 writeln!(self.writer, "{:<16} {:4} '{}'", "OP_CONSTANT", const_offset, value);
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 221 |                 let _ = writeln!(self.writer, "{:<16} {:4} '{}'", "OP_CONSTANT", const_offset, value);
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/interpreter/vm/mod.rs:224:17
[INFO] [stdout]     |
[INFO] [stdout] 224 |                 writeln!(self.writer, "OP_NEGATE");
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 224 |                 let _ = writeln!(self.writer, "OP_NEGATE");
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/interpreter/vm/mod.rs:227:17
[INFO] [stdout]     |
[INFO] [stdout] 227 |                 writeln!(self.writer, "OP_ADD");
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 227 |                 let _ = writeln!(self.writer, "OP_ADD");
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/interpreter/vm/mod.rs:230:17
[INFO] [stdout]     |
[INFO] [stdout] 230 |                 writeln!(self.writer, "OP_SUBTRACT");
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 230 |                 let _ = writeln!(self.writer, "OP_SUBTRACT");
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/interpreter/vm/mod.rs:233:17
[INFO] [stdout]     |
[INFO] [stdout] 233 |                 writeln!(self.writer, "OP_MULTIPLY");
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 233 |                 let _ = writeln!(self.writer, "OP_MULTIPLY");
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/interpreter/vm/mod.rs:236:17
[INFO] [stdout]     |
[INFO] [stdout] 236 |                 writeln!(self.writer, "OP_DIVIDE");
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 236 |                 let _ = writeln!(self.writer, "OP_DIVIDE");
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/interpreter/vm/mod.rs:239:17
[INFO] [stdout]     |
[INFO] [stdout] 239 |                 writeln!(self.writer, "OP_TRUE");
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 239 |                 let _ = writeln!(self.writer, "OP_TRUE");
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/interpreter/vm/mod.rs:242:17
[INFO] [stdout]     |
[INFO] [stdout] 242 |                 writeln!(self.writer, "OP_FALSE");
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 242 |                 let _ = writeln!(self.writer, "OP_FALSE");
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/interpreter/vm/mod.rs:245:17
[INFO] [stdout]     |
[INFO] [stdout] 245 |                 writeln!(self.writer, "OP_NIL");
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 245 |                 let _ = writeln!(self.writer, "OP_NIL");
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/interpreter/vm/mod.rs:248:17
[INFO] [stdout]     |
[INFO] [stdout] 248 |                 writeln!(self.writer, "OP_NOT");
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 248 |                 let _ = writeln!(self.writer, "OP_NOT");
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/interpreter/vm/mod.rs:251:17
[INFO] [stdout]     |
[INFO] [stdout] 251 |                 writeln!(self.writer, "OP_EQUAL");
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 251 |                 let _ = writeln!(self.writer, "OP_EQUAL");
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/interpreter/vm/mod.rs:254:17
[INFO] [stdout]     |
[INFO] [stdout] 254 |                 writeln!(self.writer, "OP_GREATER");
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 254 |                 let _ = writeln!(self.writer, "OP_GREATER");
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/interpreter/vm/mod.rs:257:17
[INFO] [stdout]     |
[INFO] [stdout] 257 |                 writeln!(self.writer, "OP_LESS");
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 257 |                 let _ = writeln!(self.writer, "OP_LESS");
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/interpreter/vm/mod.rs:260:17
[INFO] [stdout]     |
[INFO] [stdout] 260 |                 writeln!(self.writer, "OP_PRINT");
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 260 |                 let _ = writeln!(self.writer, "OP_PRINT");
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/interpreter/vm/mod.rs:263:17
[INFO] [stdout]     |
[INFO] [stdout] 263 |                 writeln!(self.writer, "OP_POP");
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 263 |                 let _ = writeln!(self.writer, "OP_POP");
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/interpreter/vm/mod.rs:267:17
[INFO] [stdout]     |
[INFO] [stdout] 267 |                 writeln!(self.writer, "{:<16} {:4} '{}'", "OP_DEFINE_GLOBAL", index, value);
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 267 |                 let _ = writeln!(self.writer, "{:<16} {:4} '{}'", "OP_DEFINE_GLOBAL", index, value);
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/interpreter/vm/mod.rs:271:17
[INFO] [stdout]     |
[INFO] [stdout] 271 |                 writeln!(self.writer, "{:<16} {:4} '{}'", "OP_GET_GLOBAL", index, value);
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 271 |                 let _ = writeln!(self.writer, "{:<16} {:4} '{}'", "OP_GET_GLOBAL", index, value);
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/interpreter/vm/mod.rs:275:17
[INFO] [stdout]     |
[INFO] [stdout] 275 |                 writeln!(self.writer, "{:<16} {:4} '{}'", "OP_SET_GLOBAL", index, value);
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 275 |                 let _ = writeln!(self.writer, "{:<16} {:4} '{}'", "OP_SET_GLOBAL", index, value);
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/interpreter/vm/mod.rs:278:17
[INFO] [stdout]     |
[INFO] [stdout] 278 |                 writeln!(self.writer, "{:<16} {:4}", "OP_GET_LOCAL", index);
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 278 |                 let _ = writeln!(self.writer, "{:<16} {:4}", "OP_GET_LOCAL", index);
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/interpreter/vm/mod.rs:281:17
[INFO] [stdout]     |
[INFO] [stdout] 281 |                 writeln!(self.writer, "{:<16} {:4}", "OP_SET_LOCAL", index);
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 281 |                 let _ = writeln!(self.writer, "{:<16} {:4}", "OP_SET_LOCAL", index);
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/interpreter/vm/mod.rs:285:17
[INFO] [stdout]     |
[INFO] [stdout] 285 |                 writeln!(self.writer, "{:<16} {:4} -> {:04}", "OP_JUMP_IF_FALSE", jump_offset, target);
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 285 |                 let _ = writeln!(self.writer, "{:<16} {:4} -> {:04}", "OP_JUMP_IF_FALSE", jump_offset, target);
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/interpreter/vm/mod.rs:289:17
[INFO] [stdout]     |
[INFO] [stdout] 289 |                 writeln!(self.writer, "{:<16} {:4} -> {:04}", "OP_JUMP", jump_offset, target);
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 289 |                 let _ = writeln!(self.writer, "{:<16} {:4} -> {:04}", "OP_JUMP", jump_offset, target);
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/interpreter/vm/mod.rs:293:17
[INFO] [stdout]     |
[INFO] [stdout] 293 |                 writeln!(self.writer, "{:<16} {:4} -> {:04}", "OP_LOOP", jump_offset, target);
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 293 |                 let _ = writeln!(self.writer, "{:<16} {:4} -> {:04}", "OP_LOOP", jump_offset, target);
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/interpreter/vm/mod.rs:302:9
[INFO] [stdout]     |
[INFO] [stdout] 302 |         writeln!(self.writer, "{message}\n[line {line}] in script");
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 302 |         let _ = writeln!(self.writer, "{message}\n[line {line}] in script");
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/scanner.rs:105:15
[INFO] [stdout]     |
[INFO] [stdout] 105 |     fn number(&self, line: u64, offset: u64) -> Token {
[INFO] [stdout]     |               ^^^^^ the lifetime is elided here ^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]     = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 105 |     fn number(&self, line: u64, offset: u64) -> Token<'_> {
[INFO] [stdout]     |                                                      ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 7.30s
[INFO] running `Command { std: "docker" "inspect" "e97e40bae3c3be35caea533380ec53e63cc165e498456b89d15b9e3d4dbf1fc1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "e97e40bae3c3be35caea533380ec53e63cc165e498456b89d15b9e3d4dbf1fc1", kill_on_drop: false }`
[INFO] [stdout] e97e40bae3c3be35caea533380ec53e63cc165e498456b89d15b9e3d4dbf1fc1
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+28f95933dc0727396c07b48d0a8cb5211b7fb472" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 9fec097bfa83e8b8b816016f24df7cea14bd63b66f4ecd52cc21cf480097931d
[INFO] running `Command { std: "docker" "start" "-a" "9fec097bfa83e8b8b816016f24df7cea14bd63b66f4ecd52cc21cf480097931d", kill_on_drop: false }`
[INFO] [stderr]    Compiling codecrafters-interpreter v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused `#[macro_use]` import
[INFO] [stdout]  --> src/main.rs:1:1
[INFO] [stdout]   |
[INFO] [stdout] 1 | #[macro_use]
[INFO] [stdout]   | ^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tree_walker::TreeWalk`
[INFO] [stdout]  --> src/interpreter/mod.rs:7:9
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub use tree_walker::TreeWalk;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]   --> src/interpreter/vm/object.rs:36:13
[INFO] [stdout]    |
[INFO] [stdout] 35 |             String { value, .. } => &value,
[INFO] [stdout]    |             -------------------- matches all the relevant values
[INFO] [stdout] 36 |             _ => panic!("Expected a string, got {:?}", self),
[INFO] [stdout]    |             ^ no value can reach this
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/main.rs:45:9
[INFO] [stdout]    |
[INFO] [stdout] 45 |     let mut file = File::open(filename);
[INFO] [stdout]    |         ----^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Evaluator` is never used
[INFO] [stdout]   --> src/interpreter/mod.rs:11:11
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub trait Evaluator<'a, 't> {
[INFO] [stdout]    |           ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Interpreter` is never used
[INFO] [stdout]   --> src/interpreter/mod.rs:15:11
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub trait Interpreter<'a, 't> {
[INFO] [stdout]    |           ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Result` is never used
[INFO] [stdout]   --> src/interpreter/mod.rs:22:10
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub type Result<'a, 't, T> = anyhow::Result<T, RuntimeError<'a, 't>>;
[INFO] [stdout]    |          ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `RuntimeError` is never used
[INFO] [stdout]   --> src/interpreter/mod.rs:25:10
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub enum RuntimeError<'a, 't> {
[INFO] [stdout]    |          ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TreeWalk` is never constructed
[INFO] [stdout]   --> src/interpreter/tree_walker/mod.rs:19:12
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub struct TreeWalk<'a, 't> {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/interpreter/tree_walker/mod.rs:25:12
[INFO] [stdout]    |
[INFO] [stdout] 24 | impl TreeWalk<'_, '_> {
[INFO] [stdout]    | --------------------- associated function in this implementation
[INFO] [stdout] 25 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/interpreter/tree_walker/mod.rs:59:8
[INFO] [stdout]     |
[INFO] [stdout]  58 | impl<'a, 't> TreeWalk<'a, 't> {
[INFO] [stdout]     | ----------------------------- methods in this implementation
[INFO] [stdout]  59 |     fn eval_stmt(&mut self, statement: &'a Statement<'t>) -> Result<'a, 't, ()> {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  73 |     fn eval_class_decl(&mut self, stmt: &'a ClassDecl<'t>) -> Result<'a, 't, ()> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 113 |     fn eval_var_decl(&mut self, stmt: &'a VariableDecl<'t>) -> Result<'a, 't, ()> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 123 |     fn eval_fun_decl(&mut self, stmt: &'a FunctionDecl<'t>) -> Result<'a, 't, ()> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 131 |     fn eval_print_stmt(&mut self, stmt: &PrintStatement<'t>) -> Result<'a, 't, ()> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 137 |     fn eval_return_stmt(&mut self, stmt: &ReturnStatement<'t>) -> Result<'a, 't, ()> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 145 |     fn eval_block_stmt(&mut self, stmts: &'a [Statement<'t>], env: BoxedEnvironment<'a, 't>) -> Result<'a, 't, ()> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 161 |     fn eval_expr_stmt(&mut self, stmt: &ExpressionStatement<'t>) -> Result<'a, 't, ()> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 166 |     fn eval_if_stmt(&mut self, stmt: &'a IfStatemnet<'t>) -> Result<'a, 't, ()> {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 176 |     fn eval_while_stmt(&mut self, stmt: &'a WhileStatement<'t>) -> Result<'a, 't, ()> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 183 |     fn eval_expr(&mut self, expr: &Expr<'t>) -> Result<'a, 't, Value<'a, 't>> {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 201 |     fn eval_super(&mut self, keyword: &Token<'t>, method: &Token<'t>, height: &Cell<Option<usize>>) -> Result<'a, 't, Value<'a, 't>> {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 215 |     fn eval_assignment(&mut self, name: &Token<'t>, value: &Box<Expr<'t>>, height: &Cell<Option<usize>>) -> Result<'a, 't, Value<'a...
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 224 |     fn eval_variable(&mut self, name: &Token<'t>, height: &Cell<Option<usize>>) -> Result<'a, 't, Value<'a, 't>> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 231 |     fn eval_this(&mut self, keyword: &Token<'t>, height: &Cell<Option<usize>>) -> Result<'a, 't, Value<'a, 't>> {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 238 |     fn eval_get(&mut self, object: &Expr<'t>, name: &Token<'t>) -> Result<'a, 't, Value<'a, 't>> {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 245 |     fn eval_set(&mut self, object: &Expr<'t>, name: &Token<'t>, value: &Expr<'t>) -> Result<'a, 't, Value<'a, 't>> {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 254 |     fn eval_or(&mut self, left: &Expr<'t>, right: &Expr<'t>) -> Result<'a, 't, Value<'a, 't>> {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 263 |     fn eval_and(&mut self, left: &Expr<'t>, right: &Expr<'t>) -> Result<'a, 't, Value<'a, 't>> {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 272 |     fn eval_call(&mut self, callee: &Expr<'t>, paren: &Token<'t>, args: &[Expr<'t>]) -> Result<'a, 't, Value<'a, 't>> {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 302 |     fn eval_binary(&mut self, left: &Expr<'t>, operator: &Token<'t>, right: &Expr<'t>) -> Result<'a, 't, Value<'a, 't>> {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 338 |     fn eval_unary(&mut self, operator: &Token<'t>, expr: &Expr<'t>) -> Result<'a, 't, Value<'a, 't>> {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `lookup_var` is never used
[INFO] [stdout]    --> src/interpreter/tree_walker/mod.rs:355:8
[INFO] [stdout]     |
[INFO] [stdout] 354 | impl<'a, 't> TreeWalk<'a, 't> {
[INFO] [stdout]     | ----------------------------- method in this implementation
[INFO] [stdout] 355 |     fn lookup_var(&self, name: &Token<'t>, height: Option<usize>) -> Option<Value<'a, 't>> {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_true` is never used
[INFO] [stdout]    --> src/interpreter/tree_walker/mod.rs:363:10
[INFO] [stdout]     |
[INFO] [stdout] 363 | const fn is_true(value: &Value) -> bool {
[INFO] [stdout]     |          ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Class` is never constructed
[INFO] [stdout]   --> src/interpreter/tree_walker/class.rs:12:12
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub struct Class<'a, 't> {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/interpreter/tree_walker/class.rs:19:12
[INFO] [stdout]    |
[INFO] [stdout] 18 | impl<'a, 't> Class<'a, 't> {
[INFO] [stdout]    | -------------------------- associated function in this implementation
[INFO] [stdout] 19 |     pub fn new(name: &'t str, methods: HashMap<&'t str, Rc<Function<'a, 't>>>, superclass: Option<Rc<Class<'a, 't>>>) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `init` and `arity` are never used
[INFO] [stdout]   --> src/interpreter/tree_walker/class.rs:25:12
[INFO] [stdout]    |
[INFO] [stdout] 24 | impl<'a, 't> Class<'a, 't> {
[INFO] [stdout]    | -------------------------- associated items in this implementation
[INFO] [stdout] 25 |     pub fn init(
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 37 |     pub fn arity(&self) -> usize {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `method` is never used
[INFO] [stdout]   --> src/interpreter/tree_walker/class.rs:43:12
[INFO] [stdout]    |
[INFO] [stdout] 42 | impl<'a, 't> Class<'a, 't> {
[INFO] [stdout]    | -------------------------- method in this implementation
[INFO] [stdout] 43 |     pub fn method(&self, name: &str) -> Option<Rc<Function<'a, 't>>> {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `BoxedEnvironment` is never used
[INFO] [stdout]  --> src/interpreter/tree_walker/env.rs:9:10
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub type BoxedEnvironment<'a, 't> = Rc<RefCell<Environment<'a, 't>>>;
[INFO] [stdout]   |          ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `ValueMap` is never used
[INFO] [stdout]   --> src/interpreter/tree_walker/env.rs:10:10
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub type ValueMap<'a, 't> = HashMap<String, Value<'a, 't>>;
[INFO] [stdout]    |          ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Environment` is never constructed
[INFO] [stdout]   --> src/interpreter/tree_walker/env.rs:13:12
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub struct Environment<'a, 't> {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `new`, `boxed`, and `boxed_with_enclosing` are never used
[INFO] [stdout]   --> src/interpreter/tree_walker/env.rs:19:12
[INFO] [stdout]    |
[INFO] [stdout] 18 | impl<'a, 't> Environment<'a, 't> {
[INFO] [stdout]    | -------------------------------- associated functions in this implementation
[INFO] [stdout] 19 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 26 |     pub fn boxed() -> BoxedEnvironment<'a, 't> {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 30 |     pub fn boxed_with_enclosing(enclosing: &BoxedEnvironment<'a, 't>) -> BoxedEnvironment<'a, 't> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `enclosing`, `get`, `get_at`, `define`, `assign`, and `assign_at` are never used
[INFO] [stdout]   --> src/interpreter/tree_walker/env.rs:45:12
[INFO] [stdout]    |
[INFO] [stdout] 44 | impl<'a, 't> Environment<'a, 't> {
[INFO] [stdout]    | -------------------------------- methods in this implementation
[INFO] [stdout] 45 |     pub fn enclosing(&self) -> Option<BoxedEnvironment<'a, 't>> {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 49 |     pub fn get(&self, name: &str) -> Option<Value<'a, 't>> {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 59 |     pub fn get_at(&self, name: &str, height: usize) -> Option<Value<'a, 't>> {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 66 |     pub fn define(&mut self, name: impl Into<String>, value: Value<'a, 't>) {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 70 |     pub fn assign(&mut self, name: Token<'t>, value: Value<'a, 't>) -> Result<(), RuntimeError<'a, 't>> {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 83 |     pub fn assign_at(&mut self, name: Token<'t>, value: Value<'a, 't>, height: usize) {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `FunctionType` is never used
[INFO] [stdout]   --> src/interpreter/tree_walker/function.rs:12:10
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub enum FunctionType {
[INFO] [stdout]    |          ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Function` is never constructed
[INFO] [stdout]   --> src/interpreter/tree_walker/function.rs:27:12
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub struct Function<'a, 't> {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/interpreter/tree_walker/function.rs:36:12
[INFO] [stdout]    |
[INFO] [stdout] 35 | impl<'a, 't> Function<'a, 't> {
[INFO] [stdout]    | ----------------------------- associated function in this implementation
[INFO] [stdout] 36 |     pub fn new(decl: &'a FunctionDecl<'t>, env: BoxedEnvironment<'a, 't>, is_init: bool) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `bind` is never used
[INFO] [stdout]   --> src/interpreter/tree_walker/function.rs:48:12
[INFO] [stdout]    |
[INFO] [stdout] 47 | impl<'a, 't> Function<'a, 't> {
[INFO] [stdout]    | ----------------------------- method in this implementation
[INFO] [stdout] 48 |     pub fn bind(&self, instance: &Rc<RefCell<Instance<'a, 't>>>) -> Self {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `call` and `arity` are never used
[INFO] [stdout]   --> src/interpreter/tree_walker/function.rs:68:12
[INFO] [stdout]    |
[INFO] [stdout] 67 | impl<'a, 't> Function<'a, 't> {
[INFO] [stdout]    | ----------------------------- methods in this implementation
[INFO] [stdout] 68 |     pub fn call(&self, interpreter: &mut impl Interpreter<'a, 't>, args: Vec<Value<'a, 't>>) -> anyhow::Result<Value<'a, 't>, Runtim...
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 83 |     pub fn arity(&self) -> usize {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `NativeFunction` is never constructed
[INFO] [stdout]    --> src/interpreter/tree_walker/function.rs:106:12
[INFO] [stdout]     |
[INFO] [stdout] 106 | pub struct NativeFunction<'a, 't> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `new` and `clock` are never used
[INFO] [stdout]    --> src/interpreter/tree_walker/function.rs:113:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | impl<'a, 't> NativeFunction<'a, 't> {
[INFO] [stdout]     | ----------------------------------- associated functions in this implementation
[INFO] [stdout] 113 |     pub fn new(name: &'static str, arity: usize, native: fn(Vec<Value<'a, 't>>) -> anyhow::Result<Value<'a, 't>, RuntimeError<'a, '...
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 117 |     pub fn clock() -> Self {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `call` and `arity` are never used
[INFO] [stdout]    --> src/interpreter/tree_walker/function.rs:134:12
[INFO] [stdout]     |
[INFO] [stdout] 133 | impl<'a, 't> NativeFunction<'a, 't> {
[INFO] [stdout]     | ----------------------------------- methods in this implementation
[INFO] [stdout] 134 |     pub fn call(&self, args: Vec<Value<'a, 't>>) -> anyhow::Result<Value<'a, 't>, RuntimeError<'a, 't>> {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 138 |     pub fn arity(&self) -> usize {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `clock` is never used
[INFO] [stdout]    --> src/interpreter/tree_walker/function.rs:149:4
[INFO] [stdout]     |
[INFO] [stdout] 149 | fn clock<'a, 't>(_args: Vec<Value<'a, 't>>) -> anyhow::Result<Value<'a, 't>, RuntimeError<'a, 't>> {
[INFO] [stdout]     |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Instance` is never constructed
[INFO] [stdout]   --> src/interpreter/tree_walker/instance.rs:12:12
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub struct Instance<'a, 't> {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `new` and `boxed` are never used
[INFO] [stdout]   --> src/interpreter/tree_walker/instance.rs:18:12
[INFO] [stdout]    |
[INFO] [stdout] 17 | impl<'a, 't> Instance<'a, 't> {
[INFO] [stdout]    | ----------------------------- associated functions in this implementation
[INFO] [stdout] 18 |     pub fn new(class: Rc<Class<'a, 't>>) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 22 |     pub fn boxed(class: Rc<Class<'a, 't>>) -> Rc<RefCell<Self>> {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `get` and `set` are never used
[INFO] [stdout]   --> src/interpreter/tree_walker/instance.rs:28:12
[INFO] [stdout]    |
[INFO] [stdout] 27 | impl<'a, 't> Instance<'a, 't> {
[INFO] [stdout]    | ----------------------------- associated items in this implementation
[INFO] [stdout] 28 |     pub fn get(this: &Rc<RefCell<Self>>, name: &Token<'t>) -> Result<Value<'a, 't>, RuntimeError<'a, 't>> {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 38 |     pub fn set(&mut self, name: &'t str, value: Value<'a, 't>) {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `as_mut_object` is never used
[INFO] [stdout]   --> src/interpreter/vm/value.rs:49:12
[INFO] [stdout]    |
[INFO] [stdout] 27 | impl Value {
[INFO] [stdout]    | ---------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 49 |     pub fn as_mut_object(&mut self) -> &mut Object {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `error_unkown_symbol` is never used
[INFO] [stdout]  --> src/log.rs:4:8
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub fn error_unkown_symbol(line: u64, s: &str) {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `error` is never used
[INFO] [stdout]  --> src/log.rs:8:8
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub fn error(line: u64, err: &str) {
[INFO] [stdout]   |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `error_token` is never used
[INFO] [stdout]   --> src/log.rs:12:8
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub fn error_token(token: &Token, err: &str) {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `error_runtime` is never used
[INFO] [stdout]   --> src/log.rs:20:8
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub fn error_runtime(err: &RuntimeError) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `token` is never used
[INFO] [stdout]   --> src/log.rs:24:8
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub fn token(token: &Token) {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `token_value` is never used
[INFO] [stdout]   --> src/log.rs:28:8
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub fn token_value(token: &Token) -> String {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `token_name` is never used
[INFO] [stdout]   --> src/log.rs:37:14
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub const fn token_name(token: &Token) -> &'static str {
[INFO] [stdout]    |              ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Parser` is never used
[INFO] [stdout]   --> src/parser.rs:12:11
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub trait Parser<'t> {
[INFO] [stdout]    |           ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `RecursiveDecendantParser` is never constructed
[INFO] [stdout]   --> src/parser.rs:17:12
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub struct RecursiveDecendantParser<'t> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ParseError` is never used
[INFO] [stdout]   --> src/parser.rs:24:6
[INFO] [stdout]    |
[INFO] [stdout] 24 | enum ParseError {
[INFO] [stdout]    |      ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/parser.rs:32:12
[INFO] [stdout]    |
[INFO] [stdout] 31 | impl RecursiveDecendantParser<'_> {
[INFO] [stdout]    | --------------------------------- associated function in this implementation
[INFO] [stdout] 32 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/parser.rs:68:8
[INFO] [stdout]     |
[INFO] [stdout]  67 | impl<'t> RecursiveDecendantParser<'t> {
[INFO] [stdout]     | ------------------------------------- methods in this implementation
[INFO] [stdout]  68 |     fn program(&self) -> Vec<Statement<'t>> {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  82 |     fn declaration(&self) -> Result<Statement<'t>, ParseError> {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  92 |     fn class_declaration(&self) -> Result<ClassDecl<'t>, ParseError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 116 |     fn variable_declaration(&self) -> Result<VariableDecl<'t>, ParseError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 130 |     fn function_declaration(&self, kind: FunctionType) -> Result<FunctionDecl<'t>, ParseError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 142 |     fn parameters(&self) -> Result<Vec<Token<'t>>, ParseError> {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 158 |     fn statement(&self) -> Result<Statement<'t>, ParseError> {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 171 |     fn block_statement(&self, block_type: Option<FunctionType>) -> Result<BlockStatement<'t>, ParseError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 188 |     fn if_statement(&self) -> Result<IfStatemnet<'t>, ParseError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 209 |     fn while_statement(&self) -> Result<WhileStatement<'t>, ParseError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 218 |     fn return_statement(&self) -> Result<ReturnStatement<'t>, ParseError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 228 |     fn desugar_for_statement(&self) -> Result<Statement<'t>, ParseError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 277 |     fn print_statement(&self) -> Result<PrintStatement<'t>, ParseError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 284 |     fn expression_statement(&self) -> Result<ExpressionStatement<'t>, ParseError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 290 |     fn expression(&self) -> Result<Expr<'t>, ParseError> {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 294 |     fn assignment(&self) -> Result<Expr<'t>, ParseError> {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 311 |     fn logical_or(&self) -> Result<Expr<'t>, ParseError> {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 321 |     fn logical_and(&self) -> Result<Expr<'t>, ParseError> {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 334 |     fn equality(&self) -> Result<Expr<'t>, ParseError> {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 348 |     fn comparision(&self) -> Result<Expr<'t>, ParseError> {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 363 |     fn term(&self) -> Result<Expr<'t>, ParseError> {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 374 |     fn factor(&self) -> Result<Expr<'t>, ParseError> {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 385 |     fn unary(&self) -> Result<Expr<'t>, ParseError> {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 397 |     fn call(&self) -> Result<Expr<'t>, ParseError> {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 424 |     fn arguments(&self) -> Result<Vec<Expr<'t>>, ParseError> {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 435 |     fn primary(&self) -> Result<Expr<'t>, ParseError> {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `peek`, `advance`, `consume`, and `synchronize` are never used
[INFO] [stdout]    --> src/parser.rs:472:8
[INFO] [stdout]     |
[INFO] [stdout] 471 | impl<'t> RecursiveDecendantParser<'t> {
[INFO] [stdout]     | ------------------------------------- methods in this implementation
[INFO] [stdout] 472 |     fn peek(&self) -> Token<'t> {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 480 |     fn advance(&self) -> Token<'t> {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 488 |     fn consume(&self, tt: TokenType, message: impl Into<String>) -> Result<Token<'t>, ParseError> {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 498 |     fn synchronize(&self) {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ScopeType` is never used
[INFO] [stdout]   --> src/resolver.rs:10:6
[INFO] [stdout]    |
[INFO] [stdout] 10 | enum ScopeType {
[INFO] [stdout]    |      ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ClassType` is never used
[INFO] [stdout]   --> src/resolver.rs:17:6
[INFO] [stdout]    |
[INFO] [stdout] 17 | enum ClassType {
[INFO] [stdout]    |      ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Resolver` is never constructed
[INFO] [stdout]   --> src/resolver.rs:23:12
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub struct Resolver<'a> {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `has_err` are never used
[INFO] [stdout]   --> src/resolver.rs:31:12
[INFO] [stdout]    |
[INFO] [stdout] 30 | impl<'a> Resolver<'a> {
[INFO] [stdout]    | --------------------- associated items in this implementation
[INFO] [stdout] 31 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 40 |     pub fn has_err(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/resolver.rs:52:12
[INFO] [stdout]     |
[INFO] [stdout]  51 | impl<'a> Resolver<'a> {
[INFO] [stdout]     | --------------------- methods in this implementation
[INFO] [stdout]  52 |     pub fn resolve_stmt(&mut self, stmt: &'a Statement) {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  66 |     fn resolve_class_decl(&mut self, stmt: &'a ClassDecl) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 100 |     fn resolve_var_decl(&mut self, stmt: &'a VariableDecl) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 108 |     fn resolve_block_stmt(&mut self, stmt: &'a BlockStatement) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 116 |     fn resolve_print_stmt(&mut self, stmt: &'a PrintStatement) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 120 |     fn resolve_expr_stmt(&mut self, stmt: &'a ExpressionStatement) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 124 |     fn resolve_if_stmt(&mut self, stmt: &'a IfStatemnet) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 132 |     fn resolve_while_stmt(&mut self, stmt: &'a WhileStatement) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 137 |     fn resolve_fun_decl(&mut self, stmt: &'a FunctionDecl) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 143 |     fn resolve_function(&mut self, params: &'a Vec<Token>, stmts: &'a Vec<Statement>, scope_type: ScopeType) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 156 |     fn resolve_return_stmt(&mut self, stmt: &'a ReturnStatement) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `resolve_expr` is never used
[INFO] [stdout]    --> src/resolver.rs:172:12
[INFO] [stdout]     |
[INFO] [stdout] 171 | impl<'a> Resolver<'a> {
[INFO] [stdout]     | --------------------- method in this implementation
[INFO] [stdout] 172 |     pub fn resolve_expr(&mut self, expr: &'a Expr) {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `begin_scope`, `end_scope`, `declare`, `define`, and `annotate` are never used
[INFO] [stdout]    --> src/resolver.rs:224:8
[INFO] [stdout]     |
[INFO] [stdout] 223 | impl<'a> Resolver<'a> {
[INFO] [stdout]     | --------------------- methods in this implementation
[INFO] [stdout] 224 |     fn begin_scope(&mut self) {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 228 |     fn end_scope(&mut self) {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 232 |     fn declare(&mut self, name: &'a Token) {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 245 |     fn define(&mut self, name: &'a str) {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 251 |     fn annotate(&mut self, name: &str, height: &Cell<Option<usize>>) {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `scan_all` is never used
[INFO] [stdout]   --> src/scanner.rs:35:12
[INFO] [stdout]    |
[INFO] [stdout] 34 | impl<'t> Scanner {
[INFO] [stdout]    | ---------------- method in this implementation
[INFO] [stdout] 35 |     pub fn scan_all(&'t self) -> Vec<Token<'t>> {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `BoxedExpr` is never used
[INFO] [stdout]   --> src/syntax.rs:10:10
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub type BoxedExpr<'t> = Box<Expr<'t>>;
[INFO] [stdout]    |          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `BoxedStatement` is never used
[INFO] [stdout]   --> src/syntax.rs:11:10
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub type BoxedStatement<'t> = Box<Statement<'t>>;
[INFO] [stdout]    |          ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Statement` is never used
[INFO] [stdout]   --> src/syntax.rs:14:10
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub enum Statement<'t> {
[INFO] [stdout]    |          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ClassDecl` is never constructed
[INFO] [stdout]   --> src/syntax.rs:27:12
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub struct ClassDecl<'t> {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `FunctionDecl` is never constructed
[INFO] [stdout]   --> src/syntax.rs:34:12
[INFO] [stdout]    |
[INFO] [stdout] 34 | pub struct FunctionDecl<'t> {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `VariableDecl` is never constructed
[INFO] [stdout]   --> src/syntax.rs:41:12
[INFO] [stdout]    |
[INFO] [stdout] 41 | pub struct VariableDecl<'t> {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PrintStatement` is never constructed
[INFO] [stdout]   --> src/syntax.rs:47:12
[INFO] [stdout]    |
[INFO] [stdout] 47 | pub struct PrintStatement<'t> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BlockStatement` is never constructed
[INFO] [stdout]   --> src/syntax.rs:53:12
[INFO] [stdout]    |
[INFO] [stdout] 53 | pub struct BlockStatement<'t> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `IfStatemnet` is never constructed
[INFO] [stdout]   --> src/syntax.rs:58:12
[INFO] [stdout]    |
[INFO] [stdout] 58 | pub struct IfStatemnet<'t> {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ReturnStatement` is never constructed
[INFO] [stdout]   --> src/syntax.rs:65:12
[INFO] [stdout]    |
[INFO] [stdout] 65 | pub struct ReturnStatement<'t> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `WhileStatement` is never constructed
[INFO] [stdout]   --> src/syntax.rs:71:12
[INFO] [stdout]    |
[INFO] [stdout] 71 | pub struct WhileStatement<'t> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ExpressionStatement` is never constructed
[INFO] [stdout]   --> src/syntax.rs:77:12
[INFO] [stdout]    |
[INFO] [stdout] 77 | pub struct ExpressionStatement<'t> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Expr` is never used
[INFO] [stdout]   --> src/syntax.rs:82:10
[INFO] [stdout]    |
[INFO] [stdout] 82 | pub enum Expr<'t> {
[INFO] [stdout]    |          ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Value` is never used
[INFO] [stdout]    --> src/syntax.rs:137:10
[INFO] [stdout]     |
[INFO] [stdout] 137 | pub enum Value<'a, 't> {
[INFO] [stdout]     |          ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Literal` is never used
[INFO] [stdout]    --> src/syntax.rs:160:10
[INFO] [stdout]     |
[INFO] [stdout] 160 | pub enum Literal<'t> {
[INFO] [stdout]     |          ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated functions are never used
[INFO] [stdout]    --> src/syntax.rs:194:12
[INFO] [stdout]     |
[INFO] [stdout] 193 | impl<'t> Expr<'t> {
[INFO] [stdout]     | ----------------- associated functions in this implementation
[INFO] [stdout] 194 |     pub fn grouping(expr: Expr<'t>) -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 198 |     pub fn unary(operator: Token<'t>, expr: Expr<'t>) -> Self {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 205 |     pub fn binary(left: Expr<'t>, operator: Token<'t>, right: Expr<'t>) -> Self {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 213 |     pub fn variable(name: Token<'t>, height: Cell<Option<usize>>) -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 217 |     pub fn assign(name: Token<'t>, value: Expr<'t>) -> Self {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 225 |     pub fn or(left: Expr<'t>, right: Expr<'t>) -> Self {
[INFO] [stdout]     |            ^^
[INFO] [stdout] ...
[INFO] [stdout] 232 |     pub fn and(left: Expr<'t>, right: Expr<'t>) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 239 |     pub fn call(callee: Expr<'t>, paren: Token<'t>, args: Vec<Expr<'t>>) -> Self {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 247 |     pub fn get(object: Expr<'t>, name: Token<'t>) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 254 |     pub fn set(object: BoxedExpr<'t>, name: Token<'t>, value: Expr<'t>) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 262 |     pub fn this(keyword: Token<'t>) -> Self {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 269 |     pub fn literal(literal: Literal<'t>) -> Self {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 273 |     pub fn super_(keyword: Token<'t>, method: Token<'t>) -> Self {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `offset` is never read
[INFO] [stdout]   --> src/token.rs:53:9
[INFO] [stdout]    |
[INFO] [stdout] 51 | pub struct TokenPosition {
[INFO] [stdout]    |            ------------- field in this struct
[INFO] [stdout] 52 |     pub line: u64,
[INFO] [stdout] 53 |     pub offset: u64,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TokenPosition` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]   --> src/main.rs:40:9
[INFO] [stdout]    |
[INFO] [stdout] 40 |         vm.interpret(&line);
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]    = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 40 |         let _ = vm.interpret(&line);
[INFO] [stdout]    |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]   --> src/main.rs:52:5
[INFO] [stdout]    |
[INFO] [stdout] 52 |     vm.interpret(&source);
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 52 |     let _ = vm.interpret(&source);
[INFO] [stdout]    |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/interpreter/vm/mod.rs:117:21
[INFO] [stdout]     |
[INFO] [stdout] 117 |                     writeln!(self.writer, "{}", value);
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 117 |                     let _ = writeln!(self.writer, "{}", value);
[INFO] [stdout]     |                     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/interpreter/vm/mod.rs:206:9
[INFO] [stdout]     |
[INFO] [stdout] 206 |         write!(self.writer, "{:04} ", offset);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 206 |         let _ = write!(self.writer, "{:04} ", offset);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/interpreter/vm/mod.rs:210:13
[INFO] [stdout]     |
[INFO] [stdout] 210 |             write!(self.writer, "   | ");
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 210 |             let _ = write!(self.writer, "   | ");
[INFO] [stdout]     |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/interpreter/vm/mod.rs:212:13
[INFO] [stdout]     |
[INFO] [stdout] 212 |             write!(self.writer, "{:4} ", chunk.lines[offset]);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 212 |             let _ = write!(self.writer, "{:4} ", chunk.lines[offset]);
[INFO] [stdout]     |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/interpreter/vm/mod.rs:217:17
[INFO] [stdout]     |
[INFO] [stdout] 217 |                 writeln!(self.writer, "OP_RETURN");
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 217 |                 let _ = writeln!(self.writer, "OP_RETURN");
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/interpreter/vm/mod.rs:221:17
[INFO] [stdout]     |
[INFO] [stdout] 221 |                 writeln!(self.writer, "{:<16} {:4} '{}'", "OP_CONSTANT", const_offset, value);
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 221 |                 let _ = writeln!(self.writer, "{:<16} {:4} '{}'", "OP_CONSTANT", const_offset, value);
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/interpreter/vm/mod.rs:224:17
[INFO] [stdout]     |
[INFO] [stdout] 224 |                 writeln!(self.writer, "OP_NEGATE");
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 224 |                 let _ = writeln!(self.writer, "OP_NEGATE");
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/interpreter/vm/mod.rs:227:17
[INFO] [stdout]     |
[INFO] [stdout] 227 |                 writeln!(self.writer, "OP_ADD");
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 227 |                 let _ = writeln!(self.writer, "OP_ADD");
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/interpreter/vm/mod.rs:230:17
[INFO] [stdout]     |
[INFO] [stdout] 230 |                 writeln!(self.writer, "OP_SUBTRACT");
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 230 |                 let _ = writeln!(self.writer, "OP_SUBTRACT");
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/interpreter/vm/mod.rs:233:17
[INFO] [stdout]     |
[INFO] [stdout] 233 |                 writeln!(self.writer, "OP_MULTIPLY");
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 233 |                 let _ = writeln!(self.writer, "OP_MULTIPLY");
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/interpreter/vm/mod.rs:236:17
[INFO] [stdout]     |
[INFO] [stdout] 236 |                 writeln!(self.writer, "OP_DIVIDE");
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 236 |                 let _ = writeln!(self.writer, "OP_DIVIDE");
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/interpreter/vm/mod.rs:239:17
[INFO] [stdout]     |
[INFO] [stdout] 239 |                 writeln!(self.writer, "OP_TRUE");
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 239 |                 let _ = writeln!(self.writer, "OP_TRUE");
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/interpreter/vm/mod.rs:242:17
[INFO] [stdout]     |
[INFO] [stdout] 242 |                 writeln!(self.writer, "OP_FALSE");
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 242 |                 let _ = writeln!(self.writer, "OP_FALSE");
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/interpreter/vm/mod.rs:245:17
[INFO] [stdout]     |
[INFO] [stdout] 245 |                 writeln!(self.writer, "OP_NIL");
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 245 |                 let _ = writeln!(self.writer, "OP_NIL");
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/interpreter/vm/mod.rs:248:17
[INFO] [stdout]     |
[INFO] [stdout] 248 |                 writeln!(self.writer, "OP_NOT");
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 248 |                 let _ = writeln!(self.writer, "OP_NOT");
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/interpreter/vm/mod.rs:251:17
[INFO] [stdout]     |
[INFO] [stdout] 251 |                 writeln!(self.writer, "OP_EQUAL");
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 251 |                 let _ = writeln!(self.writer, "OP_EQUAL");
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/interpreter/vm/mod.rs:254:17
[INFO] [stdout]     |
[INFO] [stdout] 254 |                 writeln!(self.writer, "OP_GREATER");
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 254 |                 let _ = writeln!(self.writer, "OP_GREATER");
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/interpreter/vm/mod.rs:257:17
[INFO] [stdout]     |
[INFO] [stdout] 257 |                 writeln!(self.writer, "OP_LESS");
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 257 |                 let _ = writeln!(self.writer, "OP_LESS");
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/interpreter/vm/mod.rs:260:17
[INFO] [stdout]     |
[INFO] [stdout] 260 |                 writeln!(self.writer, "OP_PRINT");
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 260 |                 let _ = writeln!(self.writer, "OP_PRINT");
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/interpreter/vm/mod.rs:263:17
[INFO] [stdout]     |
[INFO] [stdout] 263 |                 writeln!(self.writer, "OP_POP");
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 263 |                 let _ = writeln!(self.writer, "OP_POP");
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/interpreter/vm/mod.rs:267:17
[INFO] [stdout]     |
[INFO] [stdout] 267 |                 writeln!(self.writer, "{:<16} {:4} '{}'", "OP_DEFINE_GLOBAL", index, value);
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 267 |                 let _ = writeln!(self.writer, "{:<16} {:4} '{}'", "OP_DEFINE_GLOBAL", index, value);
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/interpreter/vm/mod.rs:271:17
[INFO] [stdout]     |
[INFO] [stdout] 271 |                 writeln!(self.writer, "{:<16} {:4} '{}'", "OP_GET_GLOBAL", index, value);
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 271 |                 let _ = writeln!(self.writer, "{:<16} {:4} '{}'", "OP_GET_GLOBAL", index, value);
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/interpreter/vm/mod.rs:275:17
[INFO] [stdout]     |
[INFO] [stdout] 275 |                 writeln!(self.writer, "{:<16} {:4} '{}'", "OP_SET_GLOBAL", index, value);
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 275 |                 let _ = writeln!(self.writer, "{:<16} {:4} '{}'", "OP_SET_GLOBAL", index, value);
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/interpreter/vm/mod.rs:278:17
[INFO] [stdout]     |
[INFO] [stdout] 278 |                 writeln!(self.writer, "{:<16} {:4}", "OP_GET_LOCAL", index);
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 278 |                 let _ = writeln!(self.writer, "{:<16} {:4}", "OP_GET_LOCAL", index);
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/interpreter/vm/mod.rs:281:17
[INFO] [stdout]     |
[INFO] [stdout] 281 |                 writeln!(self.writer, "{:<16} {:4}", "OP_SET_LOCAL", index);
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 281 |                 let _ = writeln!(self.writer, "{:<16} {:4}", "OP_SET_LOCAL", index);
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/interpreter/vm/mod.rs:285:17
[INFO] [stdout]     |
[INFO] [stdout] 285 |                 writeln!(self.writer, "{:<16} {:4} -> {:04}", "OP_JUMP_IF_FALSE", jump_offset, target);
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 285 |                 let _ = writeln!(self.writer, "{:<16} {:4} -> {:04}", "OP_JUMP_IF_FALSE", jump_offset, target);
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/interpreter/vm/mod.rs:289:17
[INFO] [stdout]     |
[INFO] [stdout] 289 |                 writeln!(self.writer, "{:<16} {:4} -> {:04}", "OP_JUMP", jump_offset, target);
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 289 |                 let _ = writeln!(self.writer, "{:<16} {:4} -> {:04}", "OP_JUMP", jump_offset, target);
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/interpreter/vm/mod.rs:293:17
[INFO] [stdout]     |
[INFO] [stdout] 293 |                 writeln!(self.writer, "{:<16} {:4} -> {:04}", "OP_LOOP", jump_offset, target);
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 293 |                 let _ = writeln!(self.writer, "{:<16} {:4} -> {:04}", "OP_LOOP", jump_offset, target);
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/interpreter/vm/mod.rs:302:9
[INFO] [stdout]     |
[INFO] [stdout] 302 |         writeln!(self.writer, "{message}\n[line {line}] in script");
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 302 |         let _ = writeln!(self.writer, "{message}\n[line {line}] in script");
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/scanner.rs:105:15
[INFO] [stdout]     |
[INFO] [stdout] 105 |     fn number(&self, line: u64, offset: u64) -> Token {
[INFO] [stdout]     |               ^^^^^ the lifetime is elided here ^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]     = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 105 |     fn number(&self, line: u64, offset: u64) -> Token<'_> {
[INFO] [stdout]     |                                                      ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `#[macro_use]` import
[INFO] [stdout]  --> src/main.rs:1:1
[INFO] [stdout]   |
[INFO] [stdout] 1 | #[macro_use]
[INFO] [stdout]   | ^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tree_walker::TreeWalk`
[INFO] [stdout]  --> src/interpreter/mod.rs:7:9
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub use tree_walker::TreeWalk;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::fs`
[INFO] [stdout]  --> tests/integration_test.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::fs;
[INFO] [stdout]   |     ^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::path::PathBuf`
[INFO] [stdout]  --> tests/integration_test.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::path::PathBuf;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::process::Command`
[INFO] [stdout]  --> tests/integration_test.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::process::Command;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]   --> src/interpreter/vm/object.rs:36:13
[INFO] [stdout]    |
[INFO] [stdout] 35 |             String { value, .. } => &value,
[INFO] [stdout]    |             -------------------- matches all the relevant values
[INFO] [stdout] 36 |             _ => panic!("Expected a string, got {:?}", self),
[INFO] [stdout]    |             ^ no value can reach this
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/main.rs:45:9
[INFO] [stdout]    |
[INFO] [stdout] 45 |     let mut file = File::open(filename);
[INFO] [stdout]    |         ----^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Evaluator` is never used
[INFO] [stdout]   --> src/interpreter/mod.rs:11:11
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub trait Evaluator<'a, 't> {
[INFO] [stdout]    |           ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Interpreter` is never used
[INFO] [stdout]   --> src/interpreter/mod.rs:15:11
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub trait Interpreter<'a, 't> {
[INFO] [stdout]    |           ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Result` is never used
[INFO] [stdout]   --> src/interpreter/mod.rs:22:10
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub type Result<'a, 't, T> = anyhow::Result<T, RuntimeError<'a, 't>>;
[INFO] [stdout]    |          ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `RuntimeError` is never used
[INFO] [stdout]   --> src/interpreter/mod.rs:25:10
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub enum RuntimeError<'a, 't> {
[INFO] [stdout]    |          ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TreeWalk` is never constructed
[INFO] [stdout]   --> src/interpreter/tree_walker/mod.rs:19:12
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub struct TreeWalk<'a, 't> {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/interpreter/tree_walker/mod.rs:25:12
[INFO] [stdout]    |
[INFO] [stdout] 24 | impl TreeWalk<'_, '_> {
[INFO] [stdout]    | --------------------- associated function in this implementation
[INFO] [stdout] 25 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/interpreter/tree_walker/mod.rs:59:8
[INFO] [stdout]     |
[INFO] [stdout]  58 | impl<'a, 't> TreeWalk<'a, 't> {
[INFO] [stdout]     | ----------------------------- methods in this implementation
[INFO] [stdout]  59 |     fn eval_stmt(&mut self, statement: &'a Statement<'t>) -> Result<'a, 't, ()> {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  73 |     fn eval_class_decl(&mut self, stmt: &'a ClassDecl<'t>) -> Result<'a, 't, ()> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 113 |     fn eval_var_decl(&mut self, stmt: &'a VariableDecl<'t>) -> Result<'a, 't, ()> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 123 |     fn eval_fun_decl(&mut self, stmt: &'a FunctionDecl<'t>) -> Result<'a, 't, ()> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 131 |     fn eval_print_stmt(&mut self, stmt: &PrintStatement<'t>) -> Result<'a, 't, ()> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 137 |     fn eval_return_stmt(&mut self, stmt: &ReturnStatement<'t>) -> Result<'a, 't, ()> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 145 |     fn eval_block_stmt(&mut self, stmts: &'a [Statement<'t>], env: BoxedEnvironment<'a, 't>) -> Result<'a, 't, ()> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 161 |     fn eval_expr_stmt(&mut self, stmt: &ExpressionStatement<'t>) -> Result<'a, 't, ()> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 166 |     fn eval_if_stmt(&mut self, stmt: &'a IfStatemnet<'t>) -> Result<'a, 't, ()> {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 176 |     fn eval_while_stmt(&mut self, stmt: &'a WhileStatement<'t>) -> Result<'a, 't, ()> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 183 |     fn eval_expr(&mut self, expr: &Expr<'t>) -> Result<'a, 't, Value<'a, 't>> {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 201 |     fn eval_super(&mut self, keyword: &Token<'t>, method: &Token<'t>, height: &Cell<Option<usize>>) -> Result<'a, 't, Value<'a, 't>> {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 215 |     fn eval_assignment(&mut self, name: &Token<'t>, value: &Box<Expr<'t>>, height: &Cell<Option<usize>>) -> Result<'a, 't, Value<'a...
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 224 |     fn eval_variable(&mut self, name: &Token<'t>, height: &Cell<Option<usize>>) -> Result<'a, 't, Value<'a, 't>> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 231 |     fn eval_this(&mut self, keyword: &Token<'t>, height: &Cell<Option<usize>>) -> Result<'a, 't, Value<'a, 't>> {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 238 |     fn eval_get(&mut self, object: &Expr<'t>, name: &Token<'t>) -> Result<'a, 't, Value<'a, 't>> {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 245 |     fn eval_set(&mut self, object: &Expr<'t>, name: &Token<'t>, value: &Expr<'t>) -> Result<'a, 't, Value<'a, 't>> {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 254 |     fn eval_or(&mut self, left: &Expr<'t>, right: &Expr<'t>) -> Result<'a, 't, Value<'a, 't>> {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 263 |     fn eval_and(&mut self, left: &Expr<'t>, right: &Expr<'t>) -> Result<'a, 't, Value<'a, 't>> {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 272 |     fn eval_call(&mut self, callee: &Expr<'t>, paren: &Token<'t>, args: &[Expr<'t>]) -> Result<'a, 't, Value<'a, 't>> {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 302 |     fn eval_binary(&mut self, left: &Expr<'t>, operator: &Token<'t>, right: &Expr<'t>) -> Result<'a, 't, Value<'a, 't>> {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 338 |     fn eval_unary(&mut self, operator: &Token<'t>, expr: &Expr<'t>) -> Result<'a, 't, Value<'a, 't>> {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `lookup_var` is never used
[INFO] [stdout]    --> src/interpreter/tree_walker/mod.rs:355:8
[INFO] [stdout]     |
[INFO] [stdout] 354 | impl<'a, 't> TreeWalk<'a, 't> {
[INFO] [stdout]     | ----------------------------- method in this implementation
[INFO] [stdout] 355 |     fn lookup_var(&self, name: &Token<'t>, height: Option<usize>) -> Option<Value<'a, 't>> {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_true` is never used
[INFO] [stdout]    --> src/interpreter/tree_walker/mod.rs:363:10
[INFO] [stdout]     |
[INFO] [stdout] 363 | const fn is_true(value: &Value) -> bool {
[INFO] [stdout]     |          ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Class` is never constructed
[INFO] [stdout]   --> src/interpreter/tree_walker/class.rs:12:12
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub struct Class<'a, 't> {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/interpreter/tree_walker/class.rs:19:12
[INFO] [stdout]    |
[INFO] [stdout] 18 | impl<'a, 't> Class<'a, 't> {
[INFO] [stdout]    | -------------------------- associated function in this implementation
[INFO] [stdout] 19 |     pub fn new(name: &'t str, methods: HashMap<&'t str, Rc<Function<'a, 't>>>, superclass: Option<Rc<Class<'a, 't>>>) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `init` and `arity` are never used
[INFO] [stdout]   --> src/interpreter/tree_walker/class.rs:25:12
[INFO] [stdout]    |
[INFO] [stdout] 24 | impl<'a, 't> Class<'a, 't> {
[INFO] [stdout]    | -------------------------- associated items in this implementation
[INFO] [stdout] 25 |     pub fn init(
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 37 |     pub fn arity(&self) -> usize {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `method` is never used
[INFO] [stdout]   --> src/interpreter/tree_walker/class.rs:43:12
[INFO] [stdout]    |
[INFO] [stdout] 42 | impl<'a, 't> Class<'a, 't> {
[INFO] [stdout]    | -------------------------- method in this implementation
[INFO] [stdout] 43 |     pub fn method(&self, name: &str) -> Option<Rc<Function<'a, 't>>> {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `BoxedEnvironment` is never used
[INFO] [stdout]  --> src/interpreter/tree_walker/env.rs:9:10
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub type BoxedEnvironment<'a, 't> = Rc<RefCell<Environment<'a, 't>>>;
[INFO] [stdout]   |          ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `ValueMap` is never used
[INFO] [stdout]   --> src/interpreter/tree_walker/env.rs:10:10
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub type ValueMap<'a, 't> = HashMap<String, Value<'a, 't>>;
[INFO] [stdout]    |          ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Environment` is never constructed
[INFO] [stdout]   --> src/interpreter/tree_walker/env.rs:13:12
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub struct Environment<'a, 't> {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `new`, `boxed`, and `boxed_with_enclosing` are never used
[INFO] [stdout]   --> src/interpreter/tree_walker/env.rs:19:12
[INFO] [stdout]    |
[INFO] [stdout] 18 | impl<'a, 't> Environment<'a, 't> {
[INFO] [stdout]    | -------------------------------- associated functions in this implementation
[INFO] [stdout] 19 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 26 |     pub fn boxed() -> BoxedEnvironment<'a, 't> {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 30 |     pub fn boxed_with_enclosing(enclosing: &BoxedEnvironment<'a, 't>) -> BoxedEnvironment<'a, 't> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `enclosing`, `get`, `get_at`, `define`, `assign`, and `assign_at` are never used
[INFO] [stdout]   --> src/interpreter/tree_walker/env.rs:45:12
[INFO] [stdout]    |
[INFO] [stdout] 44 | impl<'a, 't> Environment<'a, 't> {
[INFO] [stdout]    | -------------------------------- methods in this implementation
[INFO] [stdout] 45 |     pub fn enclosing(&self) -> Option<BoxedEnvironment<'a, 't>> {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 49 |     pub fn get(&self, name: &str) -> Option<Value<'a, 't>> {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 59 |     pub fn get_at(&self, name: &str, height: usize) -> Option<Value<'a, 't>> {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 66 |     pub fn define(&mut self, name: impl Into<String>, value: Value<'a, 't>) {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 70 |     pub fn assign(&mut self, name: Token<'t>, value: Value<'a, 't>) -> Result<(), RuntimeError<'a, 't>> {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 83 |     pub fn assign_at(&mut self, name: Token<'t>, value: Value<'a, 't>, height: usize) {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `FunctionType` is never used
[INFO] [stdout]   --> src/interpreter/tree_walker/function.rs:12:10
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub enum FunctionType {
[INFO] [stdout]    |          ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Function` is never constructed
[INFO] [stdout]   --> src/interpreter/tree_walker/function.rs:27:12
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub struct Function<'a, 't> {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/interpreter/tree_walker/function.rs:36:12
[INFO] [stdout]    |
[INFO] [stdout] 35 | impl<'a, 't> Function<'a, 't> {
[INFO] [stdout]    | ----------------------------- associated function in this implementation
[INFO] [stdout] 36 |     pub fn new(decl: &'a FunctionDecl<'t>, env: BoxedEnvironment<'a, 't>, is_init: bool) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `bind` is never used
[INFO] [stdout]   --> src/interpreter/tree_walker/function.rs:48:12
[INFO] [stdout]    |
[INFO] [stdout] 47 | impl<'a, 't> Function<'a, 't> {
[INFO] [stdout]    | ----------------------------- method in this implementation
[INFO] [stdout] 48 |     pub fn bind(&self, instance: &Rc<RefCell<Instance<'a, 't>>>) -> Self {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `call` and `arity` are never used
[INFO] [stdout]   --> src/interpreter/tree_walker/function.rs:68:12
[INFO] [stdout]    |
[INFO] [stdout] 67 | impl<'a, 't> Function<'a, 't> {
[INFO] [stdout]    | ----------------------------- methods in this implementation
[INFO] [stdout] 68 |     pub fn call(&self, interpreter: &mut impl Interpreter<'a, 't>, args: Vec<Value<'a, 't>>) -> anyhow::Result<Value<'a, 't>, Runtim...
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 83 |     pub fn arity(&self) -> usize {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `NativeFunction` is never constructed
[INFO] [stdout]    --> src/interpreter/tree_walker/function.rs:106:12
[INFO] [stdout]     |
[INFO] [stdout] 106 | pub struct NativeFunction<'a, 't> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `new` and `clock` are never used
[INFO] [stdout]    --> src/interpreter/tree_walker/function.rs:113:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | impl<'a, 't> NativeFunction<'a, 't> {
[INFO] [stdout]     | ----------------------------------- associated functions in this implementation
[INFO] [stdout] 113 |     pub fn new(name: &'static str, arity: usize, native: fn(Vec<Value<'a, 't>>) -> anyhow::Result<Value<'a, 't>, RuntimeError<'a, '...
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 117 |     pub fn clock() -> Self {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `call` and `arity` are never used
[INFO] [stdout]    --> src/interpreter/tree_walker/function.rs:134:12
[INFO] [stdout]     |
[INFO] [stdout] 133 | impl<'a, 't> NativeFunction<'a, 't> {
[INFO] [stdout]     | ----------------------------------- methods in this implementation
[INFO] [stdout] 134 |     pub fn call(&self, args: Vec<Value<'a, 't>>) -> anyhow::Result<Value<'a, 't>, RuntimeError<'a, 't>> {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 138 |     pub fn arity(&self) -> usize {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `clock` is never used
[INFO] [stdout]    --> src/interpreter/tree_walker/function.rs:149:4
[INFO] [stdout]     |
[INFO] [stdout] 149 | fn clock<'a, 't>(_args: Vec<Value<'a, 't>>) -> anyhow::Result<Value<'a, 't>, RuntimeError<'a, 't>> {
[INFO] [stdout]     |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Instance` is never constructed
[INFO] [stdout]   --> src/interpreter/tree_walker/instance.rs:12:12
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub struct Instance<'a, 't> {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `new` and `boxed` are never used
[INFO] [stdout]   --> src/interpreter/tree_walker/instance.rs:18:12
[INFO] [stdout]    |
[INFO] [stdout] 17 | impl<'a, 't> Instance<'a, 't> {
[INFO] [stdout]    | ----------------------------- associated functions in this implementation
[INFO] [stdout] 18 |     pub fn new(class: Rc<Class<'a, 't>>) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 22 |     pub fn boxed(class: Rc<Class<'a, 't>>) -> Rc<RefCell<Self>> {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `get` and `set` are never used
[INFO] [stdout]   --> src/interpreter/tree_walker/instance.rs:28:12
[INFO] [stdout]    |
[INFO] [stdout] 27 | impl<'a, 't> Instance<'a, 't> {
[INFO] [stdout]    | ----------------------------- associated items in this implementation
[INFO] [stdout] 28 |     pub fn get(this: &Rc<RefCell<Self>>, name: &Token<'t>) -> Result<Value<'a, 't>, RuntimeError<'a, 't>> {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 38 |     pub fn set(&mut self, name: &'t str, value: Value<'a, 't>) {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `as_mut_object` is never used
[INFO] [stdout]   --> src/interpreter/vm/value.rs:49:12
[INFO] [stdout]    |
[INFO] [stdout] 27 | impl Value {
[INFO] [stdout]    | ---------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 49 |     pub fn as_mut_object(&mut self) -> &mut Object {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `error_unkown_symbol` is never used
[INFO] [stdout]  --> src/log.rs:4:8
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub fn error_unkown_symbol(line: u64, s: &str) {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `error` is never used
[INFO] [stdout]  --> src/log.rs:8:8
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub fn error(line: u64, err: &str) {
[INFO] [stdout]   |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `error_token` is never used
[INFO] [stdout]   --> src/log.rs:12:8
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub fn error_token(token: &Token, err: &str) {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `error_runtime` is never used
[INFO] [stdout]   --> src/log.rs:20:8
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub fn error_runtime(err: &RuntimeError) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `token` is never used
[INFO] [stdout]   --> src/log.rs:24:8
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub fn token(token: &Token) {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `token_value` is never used
[INFO] [stdout]   --> src/log.rs:28:8
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub fn token_value(token: &Token) -> String {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `token_name` is never used
[INFO] [stdout]   --> src/log.rs:37:14
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub const fn token_name(token: &Token) -> &'static str {
[INFO] [stdout]    |              ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Parser` is never used
[INFO] [stdout]   --> src/parser.rs:12:11
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub trait Parser<'t> {
[INFO] [stdout]    |           ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `RecursiveDecendantParser` is never constructed
[INFO] [stdout]   --> src/parser.rs:17:12
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub struct RecursiveDecendantParser<'t> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ParseError` is never used
[INFO] [stdout]   --> src/parser.rs:24:6
[INFO] [stdout]    |
[INFO] [stdout] 24 | enum ParseError {
[INFO] [stdout]    |      ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/parser.rs:32:12
[INFO] [stdout]    |
[INFO] [stdout] 31 | impl RecursiveDecendantParser<'_> {
[INFO] [stdout]    | --------------------------------- associated function in this implementation
[INFO] [stdout] 32 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/parser.rs:68:8
[INFO] [stdout]     |
[INFO] [stdout]  67 | impl<'t> RecursiveDecendantParser<'t> {
[INFO] [stdout]     | ------------------------------------- methods in this implementation
[INFO] [stdout]  68 |     fn program(&self) -> Vec<Statement<'t>> {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  82 |     fn declaration(&self) -> Result<Statement<'t>, ParseError> {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  92 |     fn class_declaration(&self) -> Result<ClassDecl<'t>, ParseError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 116 |     fn variable_declaration(&self) -> Result<VariableDecl<'t>, ParseError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 130 |     fn function_declaration(&self, kind: FunctionType) -> Result<FunctionDecl<'t>, ParseError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 142 |     fn parameters(&self) -> Result<Vec<Token<'t>>, ParseError> {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 158 |     fn statement(&self) -> Result<Statement<'t>, ParseError> {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 171 |     fn block_statement(&self, block_type: Option<FunctionType>) -> Result<BlockStatement<'t>, ParseError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 188 |     fn if_statement(&self) -> Result<IfStatemnet<'t>, ParseError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 209 |     fn while_statement(&self) -> Result<WhileStatement<'t>, ParseError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 218 |     fn return_statement(&self) -> Result<ReturnStatement<'t>, ParseError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 228 |     fn desugar_for_statement(&self) -> Result<Statement<'t>, ParseError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 277 |     fn print_statement(&self) -> Result<PrintStatement<'t>, ParseError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 284 |     fn expression_statement(&self) -> Result<ExpressionStatement<'t>, ParseError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 290 |     fn expression(&self) -> Result<Expr<'t>, ParseError> {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 294 |     fn assignment(&self) -> Result<Expr<'t>, ParseError> {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 311 |     fn logical_or(&self) -> Result<Expr<'t>, ParseError> {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 321 |     fn logical_and(&self) -> Result<Expr<'t>, ParseError> {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 334 |     fn equality(&self) -> Result<Expr<'t>, ParseError> {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 348 |     fn comparision(&self) -> Result<Expr<'t>, ParseError> {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 363 |     fn term(&self) -> Result<Expr<'t>, ParseError> {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 374 |     fn factor(&self) -> Result<Expr<'t>, ParseError> {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 385 |     fn unary(&self) -> Result<Expr<'t>, ParseError> {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 397 |     fn call(&self) -> Result<Expr<'t>, ParseError> {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 424 |     fn arguments(&self) -> Result<Vec<Expr<'t>>, ParseError> {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 435 |     fn primary(&self) -> Result<Expr<'t>, ParseError> {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `peek`, `advance`, `consume`, and `synchronize` are never used
[INFO] [stdout]    --> src/parser.rs:472:8
[INFO] [stdout]     |
[INFO] [stdout] 471 | impl<'t> RecursiveDecendantParser<'t> {
[INFO] [stdout]     | ------------------------------------- methods in this implementation
[INFO] [stdout] 472 |     fn peek(&self) -> Token<'t> {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 480 |     fn advance(&self) -> Token<'t> {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 488 |     fn consume(&self, tt: TokenType, message: impl Into<String>) -> Result<Token<'t>, ParseError> {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 498 |     fn synchronize(&self) {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ScopeType` is never used
[INFO] [stdout]   --> src/resolver.rs:10:6
[INFO] [stdout]    |
[INFO] [stdout] 10 | enum ScopeType {
[INFO] [stdout]    |      ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ClassType` is never used
[INFO] [stdout]   --> src/resolver.rs:17:6
[INFO] [stdout]    |
[INFO] [stdout] 17 | enum ClassType {
[INFO] [stdout]    |      ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Resolver` is never constructed
[INFO] [stdout]   --> src/resolver.rs:23:12
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub struct Resolver<'a> {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `has_err` are never used
[INFO] [stdout]   --> src/resolver.rs:31:12
[INFO] [stdout]    |
[INFO] [stdout] 30 | impl<'a> Resolver<'a> {
[INFO] [stdout]    | --------------------- associated items in this implementation
[INFO] [stdout] 31 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 40 |     pub fn has_err(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/resolver.rs:52:12
[INFO] [stdout]     |
[INFO] [stdout]  51 | impl<'a> Resolver<'a> {
[INFO] [stdout]     | --------------------- methods in this implementation
[INFO] [stdout]  52 |     pub fn resolve_stmt(&mut self, stmt: &'a Statement) {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  66 |     fn resolve_class_decl(&mut self, stmt: &'a ClassDecl) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 100 |     fn resolve_var_decl(&mut self, stmt: &'a VariableDecl) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 108 |     fn resolve_block_stmt(&mut self, stmt: &'a BlockStatement) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 116 |     fn resolve_print_stmt(&mut self, stmt: &'a PrintStatement) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 120 |     fn resolve_expr_stmt(&mut self, stmt: &'a ExpressionStatement) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 124 |     fn resolve_if_stmt(&mut self, stmt: &'a IfStatemnet) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 132 |     fn resolve_while_stmt(&mut self, stmt: &'a WhileStatement) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 137 |     fn resolve_fun_decl(&mut self, stmt: &'a FunctionDecl) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 143 |     fn resolve_function(&mut self, params: &'a Vec<Token>, stmts: &'a Vec<Statement>, scope_type: ScopeType) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 156 |     fn resolve_return_stmt(&mut self, stmt: &'a ReturnStatement) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `resolve_expr` is never used
[INFO] [stdout]    --> src/resolver.rs:172:12
[INFO] [stdout]     |
[INFO] [stdout] 171 | impl<'a> Resolver<'a> {
[INFO] [stdout]     | --------------------- method in this implementation
[INFO] [stdout] 172 |     pub fn resolve_expr(&mut self, expr: &'a Expr) {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `begin_scope`, `end_scope`, `declare`, `define`, and `annotate` are never used
[INFO] [stdout]    --> src/resolver.rs:224:8
[INFO] [stdout]     |
[INFO] [stdout] 223 | impl<'a> Resolver<'a> {
[INFO] [stdout]     | --------------------- methods in this implementation
[INFO] [stdout] 224 |     fn begin_scope(&mut self) {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 228 |     fn end_scope(&mut self) {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 232 |     fn declare(&mut self, name: &'a Token) {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 245 |     fn define(&mut self, name: &'a str) {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 251 |     fn annotate(&mut self, name: &str, height: &Cell<Option<usize>>) {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `scan_all` is never used
[INFO] [stdout]   --> src/scanner.rs:35:12
[INFO] [stdout]    |
[INFO] [stdout] 34 | impl<'t> Scanner {
[INFO] [stdout]    | ---------------- method in this implementation
[INFO] [stdout] 35 |     pub fn scan_all(&'t self) -> Vec<Token<'t>> {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `BoxedExpr` is never used
[INFO] [stdout]   --> src/syntax.rs:10:10
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub type BoxedExpr<'t> = Box<Expr<'t>>;
[INFO] [stdout]    |          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `BoxedStatement` is never used
[INFO] [stdout]   --> src/syntax.rs:11:10
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub type BoxedStatement<'t> = Box<Statement<'t>>;
[INFO] [stdout]    |          ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Statement` is never used
[INFO] [stdout]   --> src/syntax.rs:14:10
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub enum Statement<'t> {
[INFO] [stdout]    |          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ClassDecl` is never constructed
[INFO] [stdout]   --> src/syntax.rs:27:12
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub struct ClassDecl<'t> {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `FunctionDecl` is never constructed
[INFO] [stdout]   --> src/syntax.rs:34:12
[INFO] [stdout]    |
[INFO] [stdout] 34 | pub struct FunctionDecl<'t> {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `VariableDecl` is never constructed
[INFO] [stdout]   --> src/syntax.rs:41:12
[INFO] [stdout]    |
[INFO] [stdout] 41 | pub struct VariableDecl<'t> {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PrintStatement` is never constructed
[INFO] [stdout]   --> src/syntax.rs:47:12
[INFO] [stdout]    |
[INFO] [stdout] 47 | pub struct PrintStatement<'t> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BlockStatement` is never constructed
[INFO] [stdout]   --> src/syntax.rs:53:12
[INFO] [stdout]    |
[INFO] [stdout] 53 | pub struct BlockStatement<'t> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `IfStatemnet` is never constructed
[INFO] [stdout]   --> src/syntax.rs:58:12
[INFO] [stdout]    |
[INFO] [stdout] 58 | pub struct IfStatemnet<'t> {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ReturnStatement` is never constructed
[INFO] [stdout]   --> src/syntax.rs:65:12
[INFO] [stdout]    |
[INFO] [stdout] 65 | pub struct ReturnStatement<'t> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `WhileStatement` is never constructed
[INFO] [stdout]   --> src/syntax.rs:71:12
[INFO] [stdout]    |
[INFO] [stdout] 71 | pub struct WhileStatement<'t> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ExpressionStatement` is never constructed
[INFO] [stdout]   --> src/syntax.rs:77:12
[INFO] [stdout]    |
[INFO] [stdout] 77 | pub struct ExpressionStatement<'t> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Expr` is never used
[INFO] [stdout]   --> src/syntax.rs:82:10
[INFO] [stdout]    |
[INFO] [stdout] 82 | pub enum Expr<'t> {
[INFO] [stdout]    |          ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Value` is never used
[INFO] [stdout]    --> src/syntax.rs:137:10
[INFO] [stdout]     |
[INFO] [stdout] 137 | pub enum Value<'a, 't> {
[INFO] [stdout]     |          ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Literal` is never used
[INFO] [stdout]    --> src/syntax.rs:160:10
[INFO] [stdout]     |
[INFO] [stdout] 160 | pub enum Literal<'t> {
[INFO] [stdout]     |          ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated functions are never used
[INFO] [stdout]    --> src/syntax.rs:194:12
[INFO] [stdout]     |
[INFO] [stdout] 193 | impl<'t> Expr<'t> {
[INFO] [stdout]     | ----------------- associated functions in this implementation
[INFO] [stdout] 194 |     pub fn grouping(expr: Expr<'t>) -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 198 |     pub fn unary(operator: Token<'t>, expr: Expr<'t>) -> Self {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 205 |     pub fn binary(left: Expr<'t>, operator: Token<'t>, right: Expr<'t>) -> Self {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 213 |     pub fn variable(name: Token<'t>, height: Cell<Option<usize>>) -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 217 |     pub fn assign(name: Token<'t>, value: Expr<'t>) -> Self {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 225 |     pub fn or(left: Expr<'t>, right: Expr<'t>) -> Self {
[INFO] [stdout]     |            ^^
[INFO] [stdout] ...
[INFO] [stdout] 232 |     pub fn and(left: Expr<'t>, right: Expr<'t>) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 239 |     pub fn call(callee: Expr<'t>, paren: Token<'t>, args: Vec<Expr<'t>>) -> Self {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 247 |     pub fn get(object: Expr<'t>, name: Token<'t>) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 254 |     pub fn set(object: BoxedExpr<'t>, name: Token<'t>, value: Expr<'t>) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 262 |     pub fn this(keyword: Token<'t>) -> Self {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 269 |     pub fn literal(literal: Literal<'t>) -> Self {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 273 |     pub fn super_(keyword: Token<'t>, method: Token<'t>) -> Self {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `offset` is never read
[INFO] [stdout]   --> src/token.rs:53:9
[INFO] [stdout]    |
[INFO] [stdout] 51 | pub struct TokenPosition {
[INFO] [stdout]    |            ------------- field in this struct
[INFO] [stdout] 52 |     pub line: u64,
[INFO] [stdout] 53 |     pub offset: u64,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TokenPosition` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]   --> src/main.rs:40:9
[INFO] [stdout]    |
[INFO] [stdout] 40 |         vm.interpret(&line);
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]    = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 40 |         let _ = vm.interpret(&line);
[INFO] [stdout]    |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]   --> src/main.rs:52:5
[INFO] [stdout]    |
[INFO] [stdout] 52 |     vm.interpret(&source);
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 52 |     let _ = vm.interpret(&source);
[INFO] [stdout]    |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/interpreter/vm/mod.rs:117:21
[INFO] [stdout]     |
[INFO] [stdout] 117 |                     writeln!(self.writer, "{}", value);
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 117 |                     let _ = writeln!(self.writer, "{}", value);
[INFO] [stdout]     |                     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/interpreter/vm/mod.rs:206:9
[INFO] [stdout]     |
[INFO] [stdout] 206 |         write!(self.writer, "{:04} ", offset);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 206 |         let _ = write!(self.writer, "{:04} ", offset);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/interpreter/vm/mod.rs:210:13
[INFO] [stdout]     |
[INFO] [stdout] 210 |             write!(self.writer, "   | ");
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 210 |             let _ = write!(self.writer, "   | ");
[INFO] [stdout]     |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/interpreter/vm/mod.rs:212:13
[INFO] [stdout]     |
[INFO] [stdout] 212 |             write!(self.writer, "{:4} ", chunk.lines[offset]);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 212 |             let _ = write!(self.writer, "{:4} ", chunk.lines[offset]);
[INFO] [stdout]     |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/interpreter/vm/mod.rs:217:17
[INFO] [stdout]     |
[INFO] [stdout] 217 |                 writeln!(self.writer, "OP_RETURN");
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 217 |                 let _ = writeln!(self.writer, "OP_RETURN");
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/interpreter/vm/mod.rs:221:17
[INFO] [stdout]     |
[INFO] [stdout] 221 |                 writeln!(self.writer, "{:<16} {:4} '{}'", "OP_CONSTANT", const_offset, value);
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 221 |                 let _ = writeln!(self.writer, "{:<16} {:4} '{}'", "OP_CONSTANT", const_offset, value);
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/interpreter/vm/mod.rs:224:17
[INFO] [stdout]     |
[INFO] [stdout] 224 |                 writeln!(self.writer, "OP_NEGATE");
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 224 |                 let _ = writeln!(self.writer, "OP_NEGATE");
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/interpreter/vm/mod.rs:227:17
[INFO] [stdout]     |
[INFO] [stdout] 227 |                 writeln!(self.writer, "OP_ADD");
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 227 |                 let _ = writeln!(self.writer, "OP_ADD");
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/interpreter/vm/mod.rs:230:17
[INFO] [stdout]     |
[INFO] [stdout] 230 |                 writeln!(self.writer, "OP_SUBTRACT");
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 230 |                 let _ = writeln!(self.writer, "OP_SUBTRACT");
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/interpreter/vm/mod.rs:233:17
[INFO] [stdout]     |
[INFO] [stdout] 233 |                 writeln!(self.writer, "OP_MULTIPLY");
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 233 |                 let _ = writeln!(self.writer, "OP_MULTIPLY");
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/interpreter/vm/mod.rs:236:17
[INFO] [stdout]     |
[INFO] [stdout] 236 |                 writeln!(self.writer, "OP_DIVIDE");
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 236 |                 let _ = writeln!(self.writer, "OP_DIVIDE");
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/interpreter/vm/mod.rs:239:17
[INFO] [stdout]     |
[INFO] [stdout] 239 |                 writeln!(self.writer, "OP_TRUE");
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 239 |                 let _ = writeln!(self.writer, "OP_TRUE");
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/interpreter/vm/mod.rs:242:17
[INFO] [stdout]     |
[INFO] [stdout] 242 |                 writeln!(self.writer, "OP_FALSE");
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 242 |                 let _ = writeln!(self.writer, "OP_FALSE");
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/interpreter/vm/mod.rs:245:17
[INFO] [stdout]     |
[INFO] [stdout] 245 |                 writeln!(self.writer, "OP_NIL");
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 245 |                 let _ = writeln!(self.writer, "OP_NIL");
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/interpreter/vm/mod.rs:248:17
[INFO] [stdout]     |
[INFO] [stdout] 248 |                 writeln!(self.writer, "OP_NOT");
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 248 |                 let _ = writeln!(self.writer, "OP_NOT");
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/interpreter/vm/mod.rs:251:17
[INFO] [stdout]     |
[INFO] [stdout] 251 |                 writeln!(self.writer, "OP_EQUAL");
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 251 |                 let _ = writeln!(self.writer, "OP_EQUAL");
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/interpreter/vm/mod.rs:254:17
[INFO] [stdout]     |
[INFO] [stdout] 254 |                 writeln!(self.writer, "OP_GREATER");
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 254 |                 let _ = writeln!(self.writer, "OP_GREATER");
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/interpreter/vm/mod.rs:257:17
[INFO] [stdout]     |
[INFO] [stdout] 257 |                 writeln!(self.writer, "OP_LESS");
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 257 |                 let _ = writeln!(self.writer, "OP_LESS");
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/interpreter/vm/mod.rs:260:17
[INFO] [stdout]     |
[INFO] [stdout] 260 |                 writeln!(self.writer, "OP_PRINT");
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 260 |                 let _ = writeln!(self.writer, "OP_PRINT");
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/interpreter/vm/mod.rs:263:17
[INFO] [stdout]     |
[INFO] [stdout] 263 |                 writeln!(self.writer, "OP_POP");
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 263 |                 let _ = writeln!(self.writer, "OP_POP");
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/interpreter/vm/mod.rs:267:17
[INFO] [stdout]     |
[INFO] [stdout] 267 |                 writeln!(self.writer, "{:<16} {:4} '{}'", "OP_DEFINE_GLOBAL", index, value);
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 267 |                 let _ = writeln!(self.writer, "{:<16} {:4} '{}'", "OP_DEFINE_GLOBAL", index, value);
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/interpreter/vm/mod.rs:271:17
[INFO] [stdout]     |
[INFO] [stdout] 271 |                 writeln!(self.writer, "{:<16} {:4} '{}'", "OP_GET_GLOBAL", index, value);
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 271 |                 let _ = writeln!(self.writer, "{:<16} {:4} '{}'", "OP_GET_GLOBAL", index, value);
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/interpreter/vm/mod.rs:275:17
[INFO] [stdout]     |
[INFO] [stdout] 275 |                 writeln!(self.writer, "{:<16} {:4} '{}'", "OP_SET_GLOBAL", index, value);
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 275 |                 let _ = writeln!(self.writer, "{:<16} {:4} '{}'", "OP_SET_GLOBAL", index, value);
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/interpreter/vm/mod.rs:278:17
[INFO] [stdout]     |
[INFO] [stdout] 278 |                 writeln!(self.writer, "{:<16} {:4}", "OP_GET_LOCAL", index);
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 278 |                 let _ = writeln!(self.writer, "{:<16} {:4}", "OP_GET_LOCAL", index);
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/interpreter/vm/mod.rs:281:17
[INFO] [stdout]     |
[INFO] [stdout] 281 |                 writeln!(self.writer, "{:<16} {:4}", "OP_SET_LOCAL", index);
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 281 |                 let _ = writeln!(self.writer, "{:<16} {:4}", "OP_SET_LOCAL", index);
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/interpreter/vm/mod.rs:285:17
[INFO] [stdout]     |
[INFO] [stdout] 285 |                 writeln!(self.writer, "{:<16} {:4} -> {:04}", "OP_JUMP_IF_FALSE", jump_offset, target);
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 285 |                 let _ = writeln!(self.writer, "{:<16} {:4} -> {:04}", "OP_JUMP_IF_FALSE", jump_offset, target);
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/interpreter/vm/mod.rs:289:17
[INFO] [stdout]     |
[INFO] [stdout] 289 |                 writeln!(self.writer, "{:<16} {:4} -> {:04}", "OP_JUMP", jump_offset, target);
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 289 |                 let _ = writeln!(self.writer, "{:<16} {:4} -> {:04}", "OP_JUMP", jump_offset, target);
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/interpreter/vm/mod.rs:293:17
[INFO] [stdout]     |
[INFO] [stdout] 293 |                 writeln!(self.writer, "{:<16} {:4} -> {:04}", "OP_LOOP", jump_offset, target);
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 293 |                 let _ = writeln!(self.writer, "{:<16} {:4} -> {:04}", "OP_LOOP", jump_offset, target);
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]    --> src/interpreter/vm/mod.rs:302:9
[INFO] [stdout]     |
[INFO] [stdout] 302 |         writeln!(self.writer, "{message}\n[line {line}] in script");
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 302 |         let _ = writeln!(self.writer, "{message}\n[line {line}] in script");
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/scanner.rs:105:15
[INFO] [stdout]     |
[INFO] [stdout] 105 |     fn number(&self, line: u64, offset: u64) -> Token {
[INFO] [stdout]     |               ^^^^^ the lifetime is elided here ^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]     = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 105 |     fn number(&self, line: u64, offset: u64) -> Token<'_> {
[INFO] [stdout]     |                                                      ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 1.08s
[INFO] running `Command { std: "docker" "inspect" "9fec097bfa83e8b8b816016f24df7cea14bd63b66f4ecd52cc21cf480097931d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "9fec097bfa83e8b8b816016f24df7cea14bd63b66f4ecd52cc21cf480097931d", kill_on_drop: false }`
[INFO] [stdout] 9fec097bfa83e8b8b816016f24df7cea14bd63b66f4ecd52cc21cf480097931d
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+28f95933dc0727396c07b48d0a8cb5211b7fb472" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 9c3fef1a327a17c89db77384186da69a4dee7f2d8b884f1bfc539ba2dfc7727f
[INFO] running `Command { std: "docker" "start" "-a" "9c3fef1a327a17c89db77384186da69a4dee7f2d8b884f1bfc539ba2dfc7727f", kill_on_drop: false }`
[INFO] [stderr] warning: unused import: `std::fs`
[INFO] [stderr]  --> tests/integration_test.rs:1:5
[INFO] [stderr]   |
[INFO] [stderr] 1 | use std::fs;
[INFO] [stderr]   |     ^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::path::PathBuf`
[INFO] [stderr]  --> tests/integration_test.rs:2:5
[INFO] [stderr]   |
[INFO] [stderr] 2 | use std::path::PathBuf;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::process::Command`
[INFO] [stderr]  --> tests/integration_test.rs:3:5
[INFO] [stderr]   |
[INFO] [stderr] 3 | use std::process::Command;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused `#[macro_use]` import
[INFO] [stderr]  --> src/main.rs:1:1
[INFO] [stderr]   |
[INFO] [stderr] 1 | #[macro_use]
[INFO] [stderr]   | ^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `tree_walker::TreeWalk`
[INFO] [stderr]  --> src/interpreter/mod.rs:7:9
[INFO] [stderr]   |
[INFO] [stderr] 7 | pub use tree_walker::TreeWalk;
[INFO] [stderr]   |         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unreachable pattern
[INFO] [stderr]   --> src/interpreter/vm/object.rs:36:13
[INFO] [stderr]    |
[INFO] [stderr] 35 |             String { value, .. } => &value,
[INFO] [stderr]    |             -------------------- matches all the relevant values
[INFO] [stderr] 36 |             _ => panic!("Expected a string, got {:?}", self),
[INFO] [stderr]    |             ^ no value can reach this
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> src/main.rs:45:9
[INFO] [stderr]    |
[INFO] [stderr] 45 |     let mut file = File::open(filename);
[INFO] [stderr]    |         ----^^^^
[INFO] [stderr]    |         |
[INFO] [stderr]    |         help: remove this `mut`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: trait `Evaluator` is never used
[INFO] [stderr]   --> src/interpreter/mod.rs:11:11
[INFO] [stderr]    |
[INFO] [stderr] 11 | pub trait Evaluator<'a, 't> {
[INFO] [stderr]    |           ^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: trait `Interpreter` is never used
[INFO] [stderr]   --> src/interpreter/mod.rs:15:11
[INFO] [stderr]    |
[INFO] [stderr] 15 | pub trait Interpreter<'a, 't> {
[INFO] [stderr]    |           ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: type alias `Result` is never used
[INFO] [stderr]   --> src/interpreter/mod.rs:22:10
[INFO] [stderr]    |
[INFO] [stderr] 22 | pub type Result<'a, 't, T> = anyhow::Result<T, RuntimeError<'a, 't>>;
[INFO] [stderr]    |          ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: enum `RuntimeError` is never used
[INFO] [stderr]   --> src/interpreter/mod.rs:25:10
[INFO] [stderr]    |
[INFO] [stderr] 25 | pub enum RuntimeError<'a, 't> {
[INFO] [stderr]    |          ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `TreeWalk` is never constructed
[INFO] [stderr]   --> src/interpreter/tree_walker/mod.rs:19:12
[INFO] [stderr]    |
[INFO] [stderr] 19 | pub struct TreeWalk<'a, 't> {
[INFO] [stderr]    |            ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated function `new` is never used
[INFO] [stderr]   --> src/interpreter/tree_walker/mod.rs:25:12
[INFO] [stderr]    |
[INFO] [stderr] 24 | impl TreeWalk<'_, '_> {
[INFO] [stderr]    | --------------------- associated function in this implementation
[INFO] [stderr] 25 |     pub fn new() -> Self {
[INFO] [stderr]    |            ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: multiple methods are never used
[INFO] [stderr]    --> src/interpreter/tree_walker/mod.rs:59:8
[INFO] [stderr]     |
[INFO] [stderr]  58 | impl<'a, 't> TreeWalk<'a, 't> {
[INFO] [stderr]     | ----------------------------- methods in this implementation
[INFO] [stderr]  59 |     fn eval_stmt(&mut self, statement: &'a Statement<'t>) -> Result<'a, 't, ()> {
[INFO] [stderr]     |        ^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr]  73 |     fn eval_class_decl(&mut self, stmt: &'a ClassDecl<'t>) -> Result<'a, 't, ()> {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 113 |     fn eval_var_decl(&mut self, stmt: &'a VariableDecl<'t>) -> Result<'a, 't, ()> {
[INFO] [stderr]     |        ^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 123 |     fn eval_fun_decl(&mut self, stmt: &'a FunctionDecl<'t>) -> Result<'a, 't, ()> {
[INFO] [stderr]     |        ^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 131 |     fn eval_print_stmt(&mut self, stmt: &PrintStatement<'t>) -> Result<'a, 't, ()> {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 137 |     fn eval_return_stmt(&mut self, stmt: &ReturnStatement<'t>) -> Result<'a, 't, ()> {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 145 |     fn eval_block_stmt(&mut self, stmts: &'a [Statement<'t>], env: BoxedEnvironment<'a, 't>) -> Result<'a, 't, ()> {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 161 |     fn eval_expr_stmt(&mut self, stmt: &ExpressionStatement<'t>) -> Result<'a, 't, ()> {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 166 |     fn eval_if_stmt(&mut self, stmt: &'a IfStatemnet<'t>) -> Result<'a, 't, ()> {
[INFO] [stderr]     |        ^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 176 |     fn eval_while_stmt(&mut self, stmt: &'a WhileStatement<'t>) -> Result<'a, 't, ()> {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 183 |     fn eval_expr(&mut self, expr: &Expr<'t>) -> Result<'a, 't, Value<'a, 't>> {
[INFO] [stderr]     |        ^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 201 |     fn eval_super(&mut self, keyword: &Token<'t>, method: &Token<'t>, height: &Cell<Option<usize>>) -> Result<'a, 't, Value<'a, 't>> {
[INFO] [stderr]     |        ^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 215 |     fn eval_assignment(&mut self, name: &Token<'t>, value: &Box<Expr<'t>>, height: &Cell<Option<usize>>) -> Result<'a, 't, Value<'a...
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 224 |     fn eval_variable(&mut self, name: &Token<'t>, height: &Cell<Option<usize>>) -> Result<'a, 't, Value<'a, 't>> {
[INFO] [stderr]     |        ^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 231 |     fn eval_this(&mut self, keyword: &Token<'t>, height: &Cell<Option<usize>>) -> Result<'a, 't, Value<'a, 't>> {
[INFO] [stderr]     |        ^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 238 |     fn eval_get(&mut self, object: &Expr<'t>, name: &Token<'t>) -> Result<'a, 't, Value<'a, 't>> {
[INFO] [stderr]     |        ^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 245 |     fn eval_set(&mut self, object: &Expr<'t>, name: &Token<'t>, value: &Expr<'t>) -> Result<'a, 't, Value<'a, 't>> {
[INFO] [stderr]     |        ^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 254 |     fn eval_or(&mut self, left: &Expr<'t>, right: &Expr<'t>) -> Result<'a, 't, Value<'a, 't>> {
[INFO] [stderr]     |        ^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 263 |     fn eval_and(&mut self, left: &Expr<'t>, right: &Expr<'t>) -> Result<'a, 't, Value<'a, 't>> {
[INFO] [stderr]     |        ^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 272 |     fn eval_call(&mut self, callee: &Expr<'t>, paren: &Token<'t>, args: &[Expr<'t>]) -> Result<'a, 't, Value<'a, 't>> {
[INFO] [stderr]     |        ^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 302 |     fn eval_binary(&mut self, left: &Expr<'t>, operator: &Token<'t>, right: &Expr<'t>) -> Result<'a, 't, Value<'a, 't>> {
[INFO] [stderr]     |        ^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 338 |     fn eval_unary(&mut self, operator: &Token<'t>, expr: &Expr<'t>) -> Result<'a, 't, Value<'a, 't>> {
[INFO] [stderr]     |        ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `lookup_var` is never used
[INFO] [stderr]    --> src/interpreter/tree_walker/mod.rs:355:8
[INFO] [stderr]     |
[INFO] [stderr] 354 | impl<'a, 't> TreeWalk<'a, 't> {
[INFO] [stderr]     | ----------------------------- method in this implementation
[INFO] [stderr] 355 |     fn lookup_var(&self, name: &Token<'t>, height: Option<usize>) -> Option<Value<'a, 't>> {
[INFO] [stderr]     |        ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `is_true` is never used
[INFO] [stderr]    --> src/interpreter/tree_walker/mod.rs:363:10
[INFO] [stderr]     |
[INFO] [stderr] 363 | const fn is_true(value: &Value) -> bool {
[INFO] [stderr]     |          ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `Class` is never constructed
[INFO] [stderr]   --> src/interpreter/tree_walker/class.rs:12:12
[INFO] [stderr]    |
[INFO] [stderr] 12 | pub struct Class<'a, 't> {
[INFO] [stderr]    |            ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated function `new` is never used
[INFO] [stderr]   --> src/interpreter/tree_walker/class.rs:19:12
[INFO] [stderr]    |
[INFO] [stderr] 18 | impl<'a, 't> Class<'a, 't> {
[INFO] [stderr]    | -------------------------- associated function in this implementation
[INFO] [stderr] 19 |     pub fn new(name: &'t str, methods: HashMap<&'t str, Rc<Function<'a, 't>>>, superclass: Option<Rc<Class<'a, 't>>>) -> Self {
[INFO] [stderr]    |            ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `init` and `arity` are never used
[INFO] [stderr]   --> src/interpreter/tree_walker/class.rs:25:12
[INFO] [stderr]    |
[INFO] [stderr] 24 | impl<'a, 't> Class<'a, 't> {
[INFO] [stderr]    | -------------------------- associated items in this implementation
[INFO] [stderr] 25 |     pub fn init(
[INFO] [stderr]    |            ^^^^
[INFO] [stderr] ...
[INFO] [stderr] 37 |     pub fn arity(&self) -> usize {
[INFO] [stderr]    |            ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `method` is never used
[INFO] [stderr]   --> src/interpreter/tree_walker/class.rs:43:12
[INFO] [stderr]    |
[INFO] [stderr] 42 | impl<'a, 't> Class<'a, 't> {
[INFO] [stderr]    | -------------------------- method in this implementation
[INFO] [stderr] 43 |     pub fn method(&self, name: &str) -> Option<Rc<Function<'a, 't>>> {
[INFO] [stderr]    |            ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: type alias `BoxedEnvironment` is never used
[INFO] [stderr]  --> src/interpreter/tree_walker/env.rs:9:10
[INFO] [stderr]   |
[INFO] [stderr] 9 | pub type BoxedEnvironment<'a, 't> = Rc<RefCell<Environment<'a, 't>>>;
[INFO] [stderr]   |          ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: type alias `ValueMap` is never used
[INFO] [stderr]   --> src/interpreter/tree_walker/env.rs:10:10
[INFO] [stderr]    |
[INFO] [stderr] 10 | pub type ValueMap<'a, 't> = HashMap<String, Value<'a, 't>>;
[INFO] [stderr]    |          ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `Environment` is never constructed
[INFO] [stderr]   --> src/interpreter/tree_walker/env.rs:13:12
[INFO] [stderr]    |
[INFO] [stderr] 13 | pub struct Environment<'a, 't> {
[INFO] [stderr]    |            ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated functions `new`, `boxed`, and `boxed_with_enclosing` are never used
[INFO] [stderr]   --> src/interpreter/tree_walker/env.rs:19:12
[INFO] [stderr]    |
[INFO] [stderr] 18 | impl<'a, 't> Environment<'a, 't> {
[INFO] [stderr]    | -------------------------------- associated functions in this implementation
[INFO] [stderr] 19 |     pub fn new() -> Self {
[INFO] [stderr]    |            ^^^
[INFO] [stderr] ...
[INFO] [stderr] 26 |     pub fn boxed() -> BoxedEnvironment<'a, 't> {
[INFO] [stderr]    |            ^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 30 |     pub fn boxed_with_enclosing(enclosing: &BoxedEnvironment<'a, 't>) -> BoxedEnvironment<'a, 't> {
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: methods `enclosing`, `get`, `get_at`, `define`, `assign`, and `assign_at` are never used
[INFO] [stderr]   --> src/interpreter/tree_walker/env.rs:45:12
[INFO] [stderr]    |
[INFO] [stderr] 44 | impl<'a, 't> Environment<'a, 't> {
[INFO] [stderr]    | -------------------------------- methods in this implementation
[INFO] [stderr] 45 |     pub fn enclosing(&self) -> Option<BoxedEnvironment<'a, 't>> {
[INFO] [stderr]    |            ^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 49 |     pub fn get(&self, name: &str) -> Option<Value<'a, 't>> {
[INFO] [stderr]    |            ^^^
[INFO] [stderr] ...
[INFO] [stderr] 59 |     pub fn get_at(&self, name: &str, height: usize) -> Option<Value<'a, 't>> {
[INFO] [stderr]    |            ^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 66 |     pub fn define(&mut self, name: impl Into<String>, value: Value<'a, 't>) {
[INFO] [stderr]    |            ^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 70 |     pub fn assign(&mut self, name: Token<'t>, value: Value<'a, 't>) -> Result<(), RuntimeError<'a, 't>> {
[INFO] [stderr]    |            ^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 83 |     pub fn assign_at(&mut self, name: Token<'t>, value: Value<'a, 't>, height: usize) {
[INFO] [stderr]    |            ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: enum `FunctionType` is never used
[INFO] [stderr]   --> src/interpreter/tree_walker/function.rs:12:10
[INFO] [stderr]    |
[INFO] [stderr] 12 | pub enum FunctionType {
[INFO] [stderr]    |          ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `Function` is never constructed
[INFO] [stderr]   --> src/interpreter/tree_walker/function.rs:27:12
[INFO] [stderr]    |
[INFO] [stderr] 27 | pub struct Function<'a, 't> {
[INFO] [stderr]    |            ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated function `new` is never used
[INFO] [stderr]   --> src/interpreter/tree_walker/function.rs:36:12
[INFO] [stderr]    |
[INFO] [stderr] 35 | impl<'a, 't> Function<'a, 't> {
[INFO] [stderr]    | ----------------------------- associated function in this implementation
[INFO] [stderr] 36 |     pub fn new(decl: &'a FunctionDecl<'t>, env: BoxedEnvironment<'a, 't>, is_init: bool) -> Self {
[INFO] [stderr]    |            ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `bind` is never used
[INFO] [stderr]   --> src/interpreter/tree_walker/function.rs:48:12
[INFO] [stderr]    |
[INFO] [stderr] 47 | impl<'a, 't> Function<'a, 't> {
[INFO] [stderr]    | ----------------------------- method in this implementation
[INFO] [stderr] 48 |     pub fn bind(&self, instance: &Rc<RefCell<Instance<'a, 't>>>) -> Self {
[INFO] [stderr]    |            ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: methods `call` and `arity` are never used
[INFO] [stderr]   --> src/interpreter/tree_walker/function.rs:68:12
[INFO] [stderr]    |
[INFO] [stderr] 67 | impl<'a, 't> Function<'a, 't> {
[INFO] [stderr]    | ----------------------------- methods in this implementation
[INFO] [stderr] 68 |     pub fn call(&self, interpreter: &mut impl Interpreter<'a, 't>, args: Vec<Value<'a, 't>>) -> anyhow::Result<Value<'a, 't>, Runtim...
[INFO] [stderr]    |            ^^^^
[INFO] [stderr] ...
[INFO] [stderr] 83 |     pub fn arity(&self) -> usize {
[INFO] [stderr]    |            ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `NativeFunction` is never constructed
[INFO] [stderr]    --> src/interpreter/tree_walker/function.rs:106:12
[INFO] [stderr]     |
[INFO] [stderr] 106 | pub struct NativeFunction<'a, 't> {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated functions `new` and `clock` are never used
[INFO] [stderr]    --> src/interpreter/tree_walker/function.rs:113:12
[INFO] [stderr]     |
[INFO] [stderr] 112 | impl<'a, 't> NativeFunction<'a, 't> {
[INFO] [stderr]     | ----------------------------------- associated functions in this implementation
[INFO] [stderr] 113 |     pub fn new(name: &'static str, arity: usize, native: fn(Vec<Value<'a, 't>>) -> anyhow::Result<Value<'a, 't>, RuntimeError<'a, '...
[INFO] [stderr]     |            ^^^
[INFO] [stderr] ...
[INFO] [stderr] 117 |     pub fn clock() -> Self {
[INFO] [stderr]     |            ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: methods `call` and `arity` are never used
[INFO] [stderr]    --> src/interpreter/tree_walker/function.rs:134:12
[INFO] [stderr]     |
[INFO] [stderr] 133 | impl<'a, 't> NativeFunction<'a, 't> {
[INFO] [stderr]     | ----------------------------------- methods in this implementation
[INFO] [stderr] 134 |     pub fn call(&self, args: Vec<Value<'a, 't>>) -> anyhow::Result<Value<'a, 't>, RuntimeError<'a, 't>> {
[INFO] [stderr]     |            ^^^^
[INFO] [stderr] ...
[INFO] [stderr] 138 |     pub fn arity(&self) -> usize {
[INFO] [stderr]     |            ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `clock` is never used
[INFO] [stderr]    --> src/interpreter/tree_walker/function.rs:149:4
[INFO] [stderr]     |
[INFO] [stderr] 149 | fn clock<'a, 't>(_args: Vec<Value<'a, 't>>) -> anyhow::Result<Value<'a, 't>, RuntimeError<'a, 't>> {
[INFO] [stderr]     |    ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `Instance` is never constructed
[INFO] [stderr]   --> src/interpreter/tree_walker/instance.rs:12:12
[INFO] [stderr]    |
[INFO] [stderr] 12 | pub struct Instance<'a, 't> {
[INFO] [stderr]    |            ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated functions `new` and `boxed` are never used
[INFO] [stderr]   --> src/interpreter/tree_walker/instance.rs:18:12
[INFO] [stderr]    |
[INFO] [stderr] 17 | impl<'a, 't> Instance<'a, 't> {
[INFO] [stderr]    | ----------------------------- associated functions in this implementation
[INFO] [stderr] 18 |     pub fn new(class: Rc<Class<'a, 't>>) -> Self {
[INFO] [stderr]    |            ^^^
[INFO] [stderr] ...
[INFO] [stderr] 22 |     pub fn boxed(class: Rc<Class<'a, 't>>) -> Rc<RefCell<Self>> {
[INFO] [stderr]    |            ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `get` and `set` are never used
[INFO] [stderr]   --> src/interpreter/tree_walker/instance.rs:28:12
[INFO] [stderr]    |
[INFO] [stderr] 27 | impl<'a, 't> Instance<'a, 't> {
[INFO] [stderr]    | ----------------------------- associated items in this implementation
[INFO] [stderr] 28 |     pub fn get(this: &Rc<RefCell<Self>>, name: &Token<'t>) -> Result<Value<'a, 't>, RuntimeError<'a, 't>> {
[INFO] [stderr]    |            ^^^
[INFO] [stderr] ...
[INFO] [stderr] 38 |     pub fn set(&mut self, name: &'t str, value: Value<'a, 't>) {
[INFO] [stderr]    |            ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `as_mut_object` is never used
[INFO] [stderr]   --> src/interpreter/vm/value.rs:49:12
[INFO] [stderr]    |
[INFO] [stderr] 27 | impl Value {
[INFO] [stderr]    | ---------- method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 49 |     pub fn as_mut_object(&mut self) -> &mut Object {
[INFO] [stderr]    |            ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `error_unkown_symbol` is never used
[INFO] [stderr]  --> src/log.rs:4:8
[INFO] [stderr]   |
[INFO] [stderr] 4 | pub fn error_unkown_symbol(line: u64, s: &str) {
[INFO] [stderr]   |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `error` is never used
[INFO] [stderr]  --> src/log.rs:8:8
[INFO] [stderr]   |
[INFO] [stderr] 8 | pub fn error(line: u64, err: &str) {
[INFO] [stderr]   |        ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `error_token` is never used
[INFO] [stderr]   --> src/log.rs:12:8
[INFO] [stderr]    |
[INFO] [stderr] 12 | pub fn error_token(token: &Token, err: &str) {
[INFO] [stderr]    |        ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `error_runtime` is never used
[INFO] [stderr]   --> src/log.rs:20:8
[INFO] [stderr]    |
[INFO] [stderr] 20 | pub fn error_runtime(err: &RuntimeError) {
[INFO] [stderr]    |        ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `token` is never used
[INFO] [stderr]   --> src/log.rs:24:8
[INFO] [stderr]    |
[INFO] [stderr] 24 | pub fn token(token: &Token) {
[INFO] [stderr]    |        ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `token_value` is never used
[INFO] [stderr]   --> src/log.rs:28:8
[INFO] [stderr]    |
[INFO] [stderr] 28 | pub fn token_value(token: &Token) -> String {
[INFO] [stderr]    |        ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `token_name` is never used
[INFO] [stderr]   --> src/log.rs:37:14
[INFO] [stderr]    |
[INFO] [stderr] 37 | pub const fn token_name(token: &Token) -> &'static str {
[INFO] [stderr]    |              ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: trait `Parser` is never used
[INFO] [stderr]   --> src/parser.rs:12:11
[INFO] [stderr]    |
[INFO] [stderr] 12 | pub trait Parser<'t> {
[INFO] [stderr]    |           ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `RecursiveDecendantParser` is never constructed
[INFO] [stderr]   --> src/parser.rs:17:12
[INFO] [stderr]    |
[INFO] [stderr] 17 | pub struct RecursiveDecendantParser<'t> {
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: enum `ParseError` is never used
[INFO] [stderr]   --> src/parser.rs:24:6
[INFO] [stderr]    |
[INFO] [stderr] 24 | enum ParseError {
[INFO] [stderr]    |      ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated function `new` is never used
[INFO] [stderr]   --> src/parser.rs:32:12
[INFO] [stderr]    |
[INFO] [stderr] 31 | impl RecursiveDecendantParser<'_> {
[INFO] [stderr]    | --------------------------------- associated function in this implementation
[INFO] [stderr] 32 |     pub fn new() -> Self {
[INFO] [stderr]    |            ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: multiple methods are never used
[INFO] [stderr]    --> src/parser.rs:68:8
[INFO] [stderr]     |
[INFO] [stderr]  67 | impl<'t> RecursiveDecendantParser<'t> {
[INFO] [stderr]     | ------------------------------------- methods in this implementation
[INFO] [stderr]  68 |     fn program(&self) -> Vec<Statement<'t>> {
[INFO] [stderr]     |        ^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr]  82 |     fn declaration(&self) -> Result<Statement<'t>, ParseError> {
[INFO] [stderr]     |        ^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr]  92 |     fn class_declaration(&self) -> Result<ClassDecl<'t>, ParseError> {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 116 |     fn variable_declaration(&self) -> Result<VariableDecl<'t>, ParseError> {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 130 |     fn function_declaration(&self, kind: FunctionType) -> Result<FunctionDecl<'t>, ParseError> {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 142 |     fn parameters(&self) -> Result<Vec<Token<'t>>, ParseError> {
[INFO] [stderr]     |        ^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 158 |     fn statement(&self) -> Result<Statement<'t>, ParseError> {
[INFO] [stderr]     |        ^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 171 |     fn block_statement(&self, block_type: Option<FunctionType>) -> Result<BlockStatement<'t>, ParseError> {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 188 |     fn if_statement(&self) -> Result<IfStatemnet<'t>, ParseError> {
[INFO] [stderr]     |        ^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 209 |     fn while_statement(&self) -> Result<WhileStatement<'t>, ParseError> {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 218 |     fn return_statement(&self) -> Result<ReturnStatement<'t>, ParseError> {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 228 |     fn desugar_for_statement(&self) -> Result<Statement<'t>, ParseError> {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 277 |     fn print_statement(&self) -> Result<PrintStatement<'t>, ParseError> {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 284 |     fn expression_statement(&self) -> Result<ExpressionStatement<'t>, ParseError> {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 290 |     fn expression(&self) -> Result<Expr<'t>, ParseError> {
[INFO] [stderr]     |        ^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 294 |     fn assignment(&self) -> Result<Expr<'t>, ParseError> {
[INFO] [stderr]     |        ^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 311 |     fn logical_or(&self) -> Result<Expr<'t>, ParseError> {
[INFO] [stderr]     |        ^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 321 |     fn logical_and(&self) -> Result<Expr<'t>, ParseError> {
[INFO] [stderr]     |        ^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 334 |     fn equality(&self) -> Result<Expr<'t>, ParseError> {
[INFO] [stderr]     |        ^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 348 |     fn comparision(&self) -> Result<Expr<'t>, ParseError> {
[INFO] [stderr]     |        ^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 363 |     fn term(&self) -> Result<Expr<'t>, ParseError> {
[INFO] [stderr]     |        ^^^^
[INFO] [stderr] ...
[INFO] [stderr] 374 |     fn factor(&self) -> Result<Expr<'t>, ParseError> {
[INFO] [stderr]     |        ^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 385 |     fn unary(&self) -> Result<Expr<'t>, ParseError> {
[INFO] [stderr]     |        ^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 397 |     fn call(&self) -> Result<Expr<'t>, ParseError> {
[INFO] [stderr]     |        ^^^^
[INFO] [stderr] ...
[INFO] [stderr] 424 |     fn arguments(&self) -> Result<Vec<Expr<'t>>, ParseError> {
[INFO] [stderr]     |        ^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 435 |     fn primary(&self) -> Result<Expr<'t>, ParseError> {
[INFO] [stderr]     |        ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: methods `peek`, `advance`, `consume`, and `synchronize` are never used
[INFO] [stderr]    --> src/parser.rs:472:8
[INFO] [stderr]     |
[INFO] [stderr] 471 | impl<'t> RecursiveDecendantParser<'t> {
[INFO] [stderr]     | ------------------------------------- methods in this implementation
[INFO] [stderr] 472 |     fn peek(&self) -> Token<'t> {
[INFO] [stderr]     |        ^^^^
[INFO] [stderr] ...
[INFO] [stderr] 480 |     fn advance(&self) -> Token<'t> {
[INFO] [stderr]     |        ^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 488 |     fn consume(&self, tt: TokenType, message: impl Into<String>) -> Result<Token<'t>, ParseError> {
[INFO] [stderr]     |        ^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 498 |     fn synchronize(&self) {
[INFO] [stderr]     |        ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: enum `ScopeType` is never used
[INFO] [stderr]   --> src/resolver.rs:10:6
[INFO] [stderr]    |
[INFO] [stderr] 10 | enum ScopeType {
[INFO] [stderr]    |      ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: enum `ClassType` is never used
[INFO] [stderr]   --> src/resolver.rs:17:6
[INFO] [stderr]    |
[INFO] [stderr] 17 | enum ClassType {
[INFO] [stderr]    |      ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `Resolver` is never constructed
[INFO] [stderr]   --> src/resolver.rs:23:12
[INFO] [stderr]    |
[INFO] [stderr] 23 | pub struct Resolver<'a> {
[INFO] [stderr]    |            ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `new` and `has_err` are never used
[INFO] [stderr]   --> src/resolver.rs:31:12
[INFO] [stderr]    |
[INFO] [stderr] 30 | impl<'a> Resolver<'a> {
[INFO] [stderr]    | --------------------- associated items in this implementation
[INFO] [stderr] 31 |     pub fn new() -> Self {
[INFO] [stderr]    |            ^^^
[INFO] [stderr] ...
[INFO] [stderr] 40 |     pub fn has_err(&self) -> bool {
[INFO] [stderr]    |            ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: multiple methods are never used
[INFO] [stderr]    --> src/resolver.rs:52:12
[INFO] [stderr]     |
[INFO] [stderr]  51 | impl<'a> Resolver<'a> {
[INFO] [stderr]     | --------------------- methods in this implementation
[INFO] [stderr]  52 |     pub fn resolve_stmt(&mut self, stmt: &'a Statement) {
[INFO] [stderr]     |            ^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr]  66 |     fn resolve_class_decl(&mut self, stmt: &'a ClassDecl) {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 100 |     fn resolve_var_decl(&mut self, stmt: &'a VariableDecl) {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 108 |     fn resolve_block_stmt(&mut self, stmt: &'a BlockStatement) {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 116 |     fn resolve_print_stmt(&mut self, stmt: &'a PrintStatement) {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 120 |     fn resolve_expr_stmt(&mut self, stmt: &'a ExpressionStatement) {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 124 |     fn resolve_if_stmt(&mut self, stmt: &'a IfStatemnet) {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 132 |     fn resolve_while_stmt(&mut self, stmt: &'a WhileStatement) {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 137 |     fn resolve_fun_decl(&mut self, stmt: &'a FunctionDecl) {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 143 |     fn resolve_function(&mut self, params: &'a Vec<Token>, stmts: &'a Vec<Statement>, scope_type: ScopeType) {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 156 |     fn resolve_return_stmt(&mut self, stmt: &'a ReturnStatement) {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `resolve_expr` is never used
[INFO] [stderr]    --> src/resolver.rs:172:12
[INFO] [stderr]     |
[INFO] [stderr] 171 | impl<'a> Resolver<'a> {
[INFO] [stderr]     | --------------------- method in this implementation
[INFO] [stderr] 172 |     pub fn resolve_expr(&mut self, expr: &'a Expr) {
[INFO] [stderr]     |            ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: methods `begin_scope`, `end_scope`, `declare`, `define`, and `annotate` are never used
[INFO] [stderr]    --> src/resolver.rs:224:8
[INFO] [stderr]     |
[INFO] [stderr] 223 | impl<'a> Resolver<'a> {
[INFO] [stderr]     | --------------------- methods in this implementation
[INFO] [stderr] 224 |     fn begin_scope(&mut self) {
[INFO] [stderr]     |        ^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 228 |     fn end_scope(&mut self) {
[INFO] [stderr]     |        ^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 232 |     fn declare(&mut self, name: &'a Token) {
[INFO] [stderr]     |        ^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 245 |     fn define(&mut self, name: &'a str) {
[INFO] [stderr]     |        ^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 251 |     fn annotate(&mut self, name: &str, height: &Cell<Option<usize>>) {
[INFO] [stderr]     |        ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `scan_all` is never used
[INFO] [stderr]   --> src/scanner.rs:35:12
[INFO] [stderr]    |
[INFO] [stderr] 34 | impl<'t> Scanner {
[INFO] [stderr]    | ---------------- method in this implementation
[INFO] [stderr] 35 |     pub fn scan_all(&'t self) -> Vec<Token<'t>> {
[INFO] [stderr]    |            ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: type alias `BoxedExpr` is never used
[INFO] [stderr]   --> src/syntax.rs:10:10
[INFO] [stderr]    |
[INFO] [stderr] 10 | pub type BoxedExpr<'t> = Box<Expr<'t>>;
[INFO] [stderr]    |          ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: type alias `BoxedStatement` is never used
[INFO] [stderr]   --> src/syntax.rs:11:10
[INFO] [stderr]    |
[INFO] [stderr] 11 | pub type BoxedStatement<'t> = Box<Statement<'t>>;
[INFO] [stderr]    |          ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: enum `Statement` is never used
[INFO] [stderr]   --> src/syntax.rs:14:10
[INFO] [stderr]    |
[INFO] [stderr] 14 | pub enum Statement<'t> {
[INFO] [stderr]    |          ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `ClassDecl` is never constructed
[INFO] [stderr]   --> src/syntax.rs:27:12
[INFO] [stderr]    |
[INFO] [stderr] 27 | pub struct ClassDecl<'t> {
[INFO] [stderr]    |            ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `FunctionDecl` is never constructed
[INFO] [stderr]   --> src/syntax.rs:34:12
[INFO] [stderr]    |
[INFO] [stderr] 34 | pub struct FunctionDecl<'t> {
[INFO] [stderr]    |            ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `VariableDecl` is never constructed
[INFO] [stderr]   --> src/syntax.rs:41:12
[INFO] [stderr]    |
[INFO] [stderr] 41 | pub struct VariableDecl<'t> {
[INFO] [stderr]    |            ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `PrintStatement` is never constructed
[INFO] [stderr]   --> src/syntax.rs:47:12
[INFO] [stderr]    |
[INFO] [stderr] 47 | pub struct PrintStatement<'t> {
[INFO] [stderr]    |            ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `BlockStatement` is never constructed
[INFO] [stderr]   --> src/syntax.rs:53:12
[INFO] [stderr]    |
[INFO] [stderr] 53 | pub struct BlockStatement<'t> {
[INFO] [stderr]    |            ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `IfStatemnet` is never constructed
[INFO] [stderr]   --> src/syntax.rs:58:12
[INFO] [stderr]    |
[INFO] [stderr] 58 | pub struct IfStatemnet<'t> {
[INFO] [stderr]    |            ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `ReturnStatement` is never constructed
[INFO] [stderr]   --> src/syntax.rs:65:12
[INFO] [stderr]    |
[INFO] [stderr] 65 | pub struct ReturnStatement<'t> {
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `WhileStatement` is never constructed
[INFO] [stderr]   --> src/syntax.rs:71:12
[INFO] [stderr]    |
[INFO] [stderr] 71 | pub struct WhileStatement<'t> {
[INFO] [stderr]    |            ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `ExpressionStatement` is never constructed
[INFO] [stderr]   --> src/syntax.rs:77:12
[INFO] [stderr]    |
[INFO] [stderr] 77 | pub struct ExpressionStatement<'t> {
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: enum `Expr` is never used
[INFO] [stderr]   --> src/syntax.rs:82:10
[INFO] [stderr]    |
[INFO] [stderr] 82 | pub enum Expr<'t> {
[INFO] [stderr]    |          ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: enum `Value` is never used
[INFO] [stderr]    --> src/syntax.rs:137:10
[INFO] [stderr]     |
[INFO] [stderr] 137 | pub enum Value<'a, 't> {
[INFO] [stderr]     |          ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: enum `Literal` is never used
[INFO] [stderr]    --> src/syntax.rs:160:10
[INFO] [stderr]     |
[INFO] [stderr] 160 | pub enum Literal<'t> {
[INFO] [stderr]     |          ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: multiple associated functions are never used
[INFO] [stderr]    --> src/syntax.rs:194:12
[INFO] [stderr]     |
[INFO] [stderr] 193 | impl<'t> Expr<'t> {
[INFO] [stderr]     | ----------------- associated functions in this implementation
[INFO] [stderr] 194 |     pub fn grouping(expr: Expr<'t>) -> Self {
[INFO] [stderr]     |            ^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 198 |     pub fn unary(operator: Token<'t>, expr: Expr<'t>) -> Self {
[INFO] [stderr]     |            ^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 205 |     pub fn binary(left: Expr<'t>, operator: Token<'t>, right: Expr<'t>) -> Self {
[INFO] [stderr]     |            ^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 213 |     pub fn variable(name: Token<'t>, height: Cell<Option<usize>>) -> Self {
[INFO] [stderr]     |            ^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 217 |     pub fn assign(name: Token<'t>, value: Expr<'t>) -> Self {
[INFO] [stderr]     |            ^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 225 |     pub fn or(left: Expr<'t>, right: Expr<'t>) -> Self {
[INFO] [stderr]     |            ^^
[INFO] [stderr] ...
[INFO] [stderr] 232 |     pub fn and(left: Expr<'t>, right: Expr<'t>) -> Self {
[INFO] [stderr]     |            ^^^
[INFO] [stderr] ...
[INFO] [stderr] 239 |     pub fn call(callee: Expr<'t>, paren: Token<'t>, args: Vec<Expr<'t>>) -> Self {
[INFO] [stderr]     |            ^^^^
[INFO] [stderr] ...
[INFO] [stderr] 247 |     pub fn get(object: Expr<'t>, name: Token<'t>) -> Self {
[INFO] [stderr]     |            ^^^
[INFO] [stderr] ...
[INFO] [stderr] 254 |     pub fn set(object: BoxedExpr<'t>, name: Token<'t>, value: Expr<'t>) -> Self {
[INFO] [stderr]     |            ^^^
[INFO] [stderr] ...
[INFO] [stderr] 262 |     pub fn this(keyword: Token<'t>) -> Self {
[INFO] [stderr]     |            ^^^^
[INFO] [stderr] ...
[INFO] [stderr] 269 |     pub fn literal(literal: Literal<'t>) -> Self {
[INFO] [stderr]     |            ^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 273 |     pub fn super_(keyword: Token<'t>, method: Token<'t>) -> Self {
[INFO] [stderr]     |            ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: field `offset` is never read
[INFO] [stderr]   --> src/token.rs:53:9
[INFO] [stderr]    |
[INFO] [stderr] 51 | pub struct TokenPosition {
[INFO] [stderr]    |            ------------- field in this struct
[INFO] [stderr] 52 |     pub line: u64,
[INFO] [stderr] 53 |     pub offset: u64,
[INFO] [stderr]    |         ^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `TokenPosition` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: unused `std::result::Result` that must be used
[INFO] [stderr]   --> src/main.rs:40:9
[INFO] [stderr]    |
[INFO] [stderr] 40 |         vm.interpret(&line);
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr]    = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]    |
[INFO] [stderr] 40 |         let _ = vm.interpret(&line);
[INFO] [stderr]    |         +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused `std::result::Result` that must be used
[INFO] [stderr]   --> src/main.rs:52:5
[INFO] [stderr]    |
[INFO] [stderr] 52 |     vm.interpret(&source);
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]    |
[INFO] [stderr] 52 |     let _ = vm.interpret(&source);
[INFO] [stderr]    |     +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused `std::result::Result` that must be used
[INFO] [stderr]    --> src/interpreter/vm/mod.rs:117:21
[INFO] [stderr]     |
[INFO] [stderr] 117 |                     writeln!(self.writer, "{}", value);
[INFO] [stderr]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]     |
[INFO] [stderr] 117 |                     let _ = writeln!(self.writer, "{}", value);
[INFO] [stderr]     |                     +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused `std::result::Result` that must be used
[INFO] [stderr]    --> src/interpreter/vm/mod.rs:206:9
[INFO] [stderr]     |
[INFO] [stderr] 206 |         write!(self.writer, "{:04} ", offset);
[INFO] [stderr]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]     |
[INFO] [stderr] 206 |         let _ = write!(self.writer, "{:04} ", offset);
[INFO] [stderr]     |         +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused `std::result::Result` that must be used
[INFO] [stderr]    --> src/interpreter/vm/mod.rs:210:13
[INFO] [stderr]     |
[INFO] [stderr] 210 |             write!(self.writer, "   | ");
[INFO] [stderr]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]     |
[INFO] [stderr] 210 |             let _ = write!(self.writer, "   | ");
[INFO] [stderr]     |             +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused `std::result::Result` that must be used
[INFO] [stderr]    --> src/interpreter/vm/mod.rs:212:13
[INFO] [stderr]     |
[INFO] [stderr] 212 |             write!(self.writer, "{:4} ", chunk.lines[offset]);
[INFO] [stderr]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]     |
[INFO] [stderr] 212 |             let _ = write!(self.writer, "{:4} ", chunk.lines[offset]);
[INFO] [stderr]     |             +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused `std::result::Result` that must be used
[INFO] [stderr]    --> src/interpreter/vm/mod.rs:217:17
[INFO] [stderr]     |
[INFO] [stderr] 217 |                 writeln!(self.writer, "OP_RETURN");
[INFO] [stderr]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]     |
[INFO] [stderr] 217 |                 let _ = writeln!(self.writer, "OP_RETURN");
[INFO] [stderr]     |                 +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused `std::result::Result` that must be used
[INFO] [stderr]    --> src/interpreter/vm/mod.rs:221:17
[INFO] [stderr]     |
[INFO] [stderr] 221 |                 writeln!(self.writer, "{:<16} {:4} '{}'", "OP_CONSTANT", const_offset, value);
[INFO] [stderr]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]     |
[INFO] [stderr] 221 |                 let _ = writeln!(self.writer, "{:<16} {:4} '{}'", "OP_CONSTANT", const_offset, value);
[INFO] [stderr]     |                 +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused `std::result::Result` that must be used
[INFO] [stderr]    --> src/interpreter/vm/mod.rs:224:17
[INFO] [stderr]     |
[INFO] [stderr] 224 |                 writeln!(self.writer, "OP_NEGATE");
[INFO] [stderr]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]     |
[INFO] [stderr] 224 |                 let _ = writeln!(self.writer, "OP_NEGATE");
[INFO] [stderr]     |                 +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused `std::result::Result` that must be used
[INFO] [stderr]    --> src/interpreter/vm/mod.rs:227:17
[INFO] [stderr]     |
[INFO] [stderr] 227 |                 writeln!(self.writer, "OP_ADD");
[INFO] [stderr]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]     |
[INFO] [stderr] 227 |                 let _ = writeln!(self.writer, "OP_ADD");
[INFO] [stderr]     |                 +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused `std::result::Result` that must be used
[INFO] [stderr]    --> src/interpreter/vm/mod.rs:230:17
[INFO] [stderr]     |
[INFO] [stderr] 230 |                 writeln!(self.writer, "OP_SUBTRACT");
[INFO] [stderr]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]     |
[INFO] [stderr] 230 |                 let _ = writeln!(self.writer, "OP_SUBTRACT");
[INFO] [stderr]     |                 +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused `std::result::Result` that must be used
[INFO] [stderr]    --> src/interpreter/vm/mod.rs:233:17
[INFO] [stderr]     |
[INFO] [stderr] 233 |                 writeln!(self.writer, "OP_MULTIPLY");
[INFO] [stderr]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]     |
[INFO] [stderr] 233 |                 let _ = writeln!(self.writer, "OP_MULTIPLY");
[INFO] [stderr]     |                 +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused `std::result::Result` that must be used
[INFO] [stderr]    --> src/interpreter/vm/mod.rs:236:17
[INFO] [stderr]     |
[INFO] [stderr] 236 |                 writeln!(self.writer, "OP_DIVIDE");
[INFO] [stderr]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]     |
[INFO] [stderr] 236 |                 let _ = writeln!(self.writer, "OP_DIVIDE");
[INFO] [stderr]     |                 +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused `std::result::Result` that must be used
[INFO] [stderr]    --> src/interpreter/vm/mod.rs:239:17
[INFO] [stderr]     |
[INFO] [stderr] 239 |                 writeln!(self.writer, "OP_TRUE");
[INFO] [stderr]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]     |
[INFO] [stderr] 239 |                 let _ = writeln!(self.writer, "OP_TRUE");
[INFO] [stderr]     |                 +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused `std::result::Result` that must be used
[INFO] [stderr]    --> src/interpreter/vm/mod.rs:242:17
[INFO] [stderr]     |
[INFO] [stderr] 242 |                 writeln!(self.writer, "OP_FALSE");
[INFO] [stderr]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]     |
[INFO] [stderr] 242 |                 let _ = writeln!(self.writer, "OP_FALSE");
[INFO] [stderr]     |                 +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused `std::result::Result` that must be used
[INFO] [stderr]    --> src/interpreter/vm/mod.rs:245:17
[INFO] [stderr]     |
[INFO] [stderr] 245 |                 writeln!(self.writer, "OP_NIL");
[INFO] [stderr]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]     |
[INFO] [stderr] 245 |                 let _ = writeln!(self.writer, "OP_NIL");
[INFO] [stderr]     |                 +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused `std::result::Result` that must be used
[INFO] [stderr]    --> src/interpreter/vm/mod.rs:248:17
[INFO] [stderr]     |
[INFO] [stderr] 248 |                 writeln!(self.writer, "OP_NOT");
[INFO] [stderr]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]     |
[INFO] [stderr] 248 |                 let _ = writeln!(self.writer, "OP_NOT");
[INFO] [stderr]     |                 +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused `std::result::Result` that must be used
[INFO] [stderr]    --> src/interpreter/vm/mod.rs:251:17
[INFO] [stderr]     |
[INFO] [stderr] 251 |                 writeln!(self.writer, "OP_EQUAL");
[INFO] [stderr]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]     |
[INFO] [stderr] 251 |                 let _ = writeln!(self.writer, "OP_EQUAL");
[INFO] [stderr]     |                 +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused `std::result::Result` that must be used
[INFO] [stderr]    --> src/interpreter/vm/mod.rs:254:17
[INFO] [stderr]     |
[INFO] [stderr] 254 |                 writeln!(self.writer, "OP_GREATER");
[INFO] [stderr]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]     |
[INFO] [stderr] 254 |                 let _ = writeln!(self.writer, "OP_GREATER");
[INFO] [stderr]     |                 +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused `std::result::Result` that must be used
[INFO] [stderr]    --> src/interpreter/vm/mod.rs:257:17
[INFO] [stderr]     |
[INFO] [stderr] 257 |                 writeln!(self.writer, "OP_LESS");
[INFO] [stderr]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]     |
[INFO] [stderr] 257 |                 let _ = writeln!(self.writer, "OP_LESS");
[INFO] [stderr]     |                 +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused `std::result::Result` that must be used
[INFO] [stderr]    --> src/interpreter/vm/mod.rs:260:17
[INFO] [stderr]     |
[INFO] [stderr] 260 |                 writeln!(self.writer, "OP_PRINT");
[INFO] [stderr]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]     |
[INFO] [stderr] 260 |                 let _ = writeln!(self.writer, "OP_PRINT");
[INFO] [stderr]     |                 +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused `std::result::Result` that must be used
[INFO] [stderr]    --> src/interpreter/vm/mod.rs:263:17
[INFO] [stderr]     |
[INFO] [stderr] 263 |                 writeln!(self.writer, "OP_POP");
[INFO] [stderr]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]     |
[INFO] [stderr] 263 |                 let _ = writeln!(self.writer, "OP_POP");
[INFO] [stderr]     |                 +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused `std::result::Result` that must be used
[INFO] [stderr]    --> src/interpreter/vm/mod.rs:267:17
[INFO] [stderr]     |
[INFO] [stderr] 267 |                 writeln!(self.writer, "{:<16} {:4} '{}'", "OP_DEFINE_GLOBAL", index, value);
[INFO] [stderr]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]     |
[INFO] [stderr] 267 |                 let _ = writeln!(self.writer, "{:<16} {:4} '{}'", "OP_DEFINE_GLOBAL", index, value);
[INFO] [stderr]     |                 +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused `std::result::Result` that must be used
[INFO] [stderr]    --> src/interpreter/vm/mod.rs:271:17
[INFO] [stderr]     |
[INFO] [stderr] 271 |                 writeln!(self.writer, "{:<16} {:4} '{}'", "OP_GET_GLOBAL", index, value);
[INFO] [stderr]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]     |
[INFO] [stderr] 271 |                 let _ = writeln!(self.writer, "{:<16} {:4} '{}'", "OP_GET_GLOBAL", index, value);
[INFO] [stderr]     |                 +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused `std::result::Result` that must be used
[INFO] [stderr]    --> src/interpreter/vm/mod.rs:275:17
[INFO] [stderr]     |
[INFO] [stderr] 275 |                 writeln!(self.writer, "{:<16} {:4} '{}'", "OP_SET_GLOBAL", index, value);
[INFO] [stderr]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]     |
[INFO] [stderr] 275 |                 let _ = writeln!(self.writer, "{:<16} {:4} '{}'", "OP_SET_GLOBAL", index, value);
[INFO] [stderr]     |                 +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused `std::result::Result` that must be used
[INFO] [stderr]    --> src/interpreter/vm/mod.rs:278:17
[INFO] [stderr]     |
[INFO] [stderr] 278 |                 writeln!(self.writer, "{:<16} {:4}", "OP_GET_LOCAL", index);
[INFO] [stderr]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]     |
[INFO] [stderr] 278 |                 let _ = writeln!(self.writer, "{:<16} {:4}", "OP_GET_LOCAL", index);
[INFO] [stderr]     |                 +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused `std::result::Result` that must be used
[INFO] [stderr]    --> src/interpreter/vm/mod.rs:281:17
[INFO] [stderr]     |
[INFO] [stderr] 281 |                 writeln!(self.writer, "{:<16} {:4}", "OP_SET_LOCAL", index);
[INFO] [stderr]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]     |
[INFO] [stderr] 281 |                 let _ = writeln!(self.writer, "{:<16} {:4}", "OP_SET_LOCAL", index);
[INFO] [stderr]     |                 +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused `std::result::Result` that must be used
[INFO] [stderr]    --> src/interpreter/vm/mod.rs:285:17
[INFO] [stderr]     |
[INFO] [stderr] 285 |                 writeln!(self.writer, "{:<16} {:4} -> {:04}", "OP_JUMP_IF_FALSE", jump_offset, target);
[INFO] [stderr]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]     |
[INFO] [stderr] 285 |                 let _ = writeln!(self.writer, "{:<16} {:4} -> {:04}", "OP_JUMP_IF_FALSE", jump_offset, target);
[INFO] [stderr]     |                 +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused `std::result::Result` that must be used
[INFO] [stderr]    --> src/interpreter/vm/mod.rs:289:17
[INFO] [stderr]     |
[INFO] [stderr] 289 |                 writeln!(self.writer, "{:<16} {:4} -> {:04}", "OP_JUMP", jump_offset, target);
[INFO] [stderr]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]     |
[INFO] [stderr] 289 |                 let _ = writeln!(self.writer, "{:<16} {:4} -> {:04}", "OP_JUMP", jump_offset, target);
[INFO] [stderr]     |                 +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused `std::result::Result` that must be used
[INFO] [stderr]    --> src/interpreter/vm/mod.rs:293:17
[INFO] [stderr]     |
[INFO] [stderr] 293 |                 writeln!(self.writer, "{:<16} {:4} -> {:04}", "OP_LOOP", jump_offset, target);
[INFO] [stderr]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]     |
[INFO] [stderr] 293 |                 let _ = writeln!(self.writer, "{:<16} {:4} -> {:04}", "OP_LOOP", jump_offset, target);
[INFO] [stderr]     |                 +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused `std::result::Result` that must be used
[INFO] [stderr]    --> src/interpreter/vm/mod.rs:302:9
[INFO] [stderr]     |
[INFO] [stderr] 302 |         writeln!(self.writer, "{message}\n[line {line}] in script");
[INFO] [stderr]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]     |
[INFO] [stderr] 302 |         let _ = writeln!(self.writer, "{message}\n[line {line}] in script");
[INFO] [stderr]     |         +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]    --> src/scanner.rs:105:15
[INFO] [stderr]     |
[INFO] [stderr] 105 |     fn number(&self, line: u64, offset: u64) -> Token {
[INFO] [stderr]     |               ^^^^^ the lifetime is elided here ^^^^^ the same lifetime is hidden here
[INFO] [stderr]     |
[INFO] [stderr]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stderr]     = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stderr] help: use `'_` for type paths
[INFO] [stderr]     |
[INFO] [stderr] 105 |     fn number(&self, line: u64, offset: u64) -> Token<'_> {
[INFO] [stderr]     |                                                      ++++
[INFO] [stderr] 
[INFO] [stderr] warning: `codecrafters-interpreter` (test "integration_test") generated 3 warnings (run `cargo fix --test "integration_test" -p codecrafters-interpreter` to apply 3 suggestions)
[INFO] [stderr] warning: `codecrafters-interpreter` (bin "codecrafters-interpreter" test) generated 105 warnings (run `cargo fix --bin "codecrafters-interpreter" -p codecrafters-interpreter --tests` to apply 3 suggestions)
[INFO] [stderr] warning: `codecrafters-interpreter` (bin "codecrafters-interpreter") generated 105 warnings (105 duplicates)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.19s
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/codecrafters_interpreter-902de8cb177a959c)
[INFO] [stdout] 
[INFO] [stdout] running 32 tests
[INFO] [stdout] test interpreter::vm::compiler::tests::test_addition_compilation ... ok
[INFO] [stdout] test interpreter::vm::compiler::tests::test_basic_arithmetic ... ok
[INFO] [stdout] test interpreter::vm::compiler::tests::test_equality ... ok
[INFO] [stdout] test interpreter::vm::compiler::tests::test_associativity ... ok
[INFO] [stdout] test interpreter::vm::compiler::tests::test_edge_cases ... ok
[INFO] [stdout] test interpreter::vm::compiler::tests::test_global_variables ... ok
[INFO] [stdout] test interpreter::vm::compiler::tests::test_expression_statements ... ok
[INFO] [stdout] test interpreter::vm::compiler::tests::test_literals ... ok
[INFO] [stdout] test interpreter::vm::compiler::tests::test_local_variables ... ok
[INFO] [stdout] test interpreter::vm::compiler::tests::test_multiline_compilation ... ok
[INFO] [stdout] test interpreter::vm::compiler::tests::test_logical_not ... ok
[INFO] [stdout] test interpreter::vm::compiler::tests::test_grouping ... ok
[INFO] [stdout] test interpreter::vm::compiler::tests::test_number_compilation ... ok
[INFO] [stdout] test interpreter::vm::compiler::tests::test_comparison ... ok
[INFO] [stdout] test interpreter::vm::compiler::tests::test_precedence ... ok
[INFO] [stdout] test interpreter::vm::compiler::tests::test_semantic_errors ... ok
[INFO] [stdout] test interpreter::vm::mem::tests::test_allocate_string_always_new ... ok
[INFO] [stdout] test interpreter::vm::compiler::tests::test_syntax_errors ... ok
[INFO] [stdout] test interpreter::vm::mem::tests::test_object_linked_list ... ok
[INFO] [stdout] test interpreter::vm::compiler::tests::test_unary_negation ... ok
[INFO] [stdout] test interpreter::vm::mem::tests::test_globals ... ok
[INFO] [stdout] test interpreter::vm::tests::test_blocks_and_scopes ... ok
[INFO] [stdout] test interpreter::vm::compiler::tests::test_shadowing ... ok
[INFO] [stdout] test interpreter::vm::tests::test_comparison ... ok
[INFO] [stdout] test interpreter::vm::mem::tests::test_intern_string ... ok
[INFO] [stdout] test interpreter::vm::tests::test_local_variables ... ok
[INFO] [stdout] test interpreter::vm::tests::test_global_variables ... ok
[INFO] [stdout] test interpreter::vm::tests::test_literals ... ok
[INFO] [stdout] test interpreter::vm::tests::test_negate ... ok
[INFO] [stdout] test interpreter::vm::tests::test_arithmetic ... ok
[INFO] [stdout] test interpreter::vm::compiler::tests::test_synchronization ... ok
[INFO] [stdout] test interpreter::vm::mem::tests::test_set_global_bug_confirmation ... FAILED
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout] 
[INFO] [stdout] ---- interpreter::vm::mem::tests::test_set_global_bug_confirmation stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'interpreter::vm::mem::tests::test_set_global_bug_confirmation' (42) panicked at src/interpreter/vm/mem.rs:159:9:
[INFO] [stdout] assertion `left == right` failed: Current implementation incorrectly fails if variable exists
[INFO] [stdout]   left: true
[INFO] [stdout]  right: false
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x5ce7ce4fc018 - std[d054f6f42beb1baa]::backtrace_rs::backtrace::libunwind::trace
[INFO] [stdout]                                at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x5ce7ce4fc018 - std[d054f6f42beb1baa]::backtrace_rs::backtrace::trace_unsynchronized::<std[d054f6f42beb1baa]::sys::backtrace::_print_fmt::{closure#1}>
[INFO] [stdout]                                at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x5ce7ce4fc018 - std[d054f6f42beb1baa]::sys::backtrace::_print_fmt
[INFO] [stdout]                                at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/std/src/sys/backtrace.rs:74:9
[INFO] [stdout]    3:     0x5ce7ce4fc018 - <<std[d054f6f42beb1baa]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[5a1c3e9896636f3a]::fmt::Display>::fmt
[INFO] [stdout]                                at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/std/src/sys/backtrace.rs:44:26
[INFO] [stdout]    4:     0x5ce7ce51095a - <core[5a1c3e9896636f3a]::fmt::rt::Argument>::fmt
[INFO] [stdout]                                at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/core/src/fmt/rt.rs:152:76
[INFO] [stdout]    5:     0x5ce7ce51095a - core[5a1c3e9896636f3a]::fmt::write
[INFO] [stdout]    6:     0x5ce7ce500832 - std[d054f6f42beb1baa]::io::default_write_fmt::<alloc[154f689e5dd3bae5]::vec::Vec<u8>>
[INFO] [stdout]                                at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/std/src/io/mod.rs:622:11
[INFO] [stdout]    7:     0x5ce7ce500832 - <alloc[154f689e5dd3bae5]::vec::Vec<u8> as std[d054f6f42beb1baa]::io::Write>::write_fmt
[INFO] [stdout]                                at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/std/src/io/mod.rs:1977:13
[INFO] [stdout]    8:     0x5ce7ce4db1c6 - <std[d054f6f42beb1baa]::sys::backtrace::BacktraceLock>::print
[INFO] [stdout]                                at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/std/src/sys/backtrace.rs:47:9
[INFO] [stdout]    9:     0x5ce7ce4db1c6 - std[d054f6f42beb1baa]::panicking::default_hook::{closure#0}
[INFO] [stdout]                                at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/std/src/panicking.rs:292:27
[INFO] [stdout]   10:     0x5ce7ce4f45b9 - std[d054f6f42beb1baa]::panicking::default_hook
[INFO] [stdout]                                at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/std/src/panicking.rs:316:9
[INFO] [stdout]   11:     0x5ce7ce4866cc - <alloc[154f689e5dd3bae5]::boxed::Box<dyn for<'a, 'b> core[5a1c3e9896636f3a]::ops::function::Fn<(&'a std[d054f6f42beb1baa]::panic::PanicHookInfo<'b>,), Output = ()> + core[5a1c3e9896636f3a]::marker::Send + core[5a1c3e9896636f3a]::marker::Sync> as core[5a1c3e9896636f3a]::ops::function::Fn<(&std[d054f6f42beb1baa]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/alloc/src/boxed.rs:2291:9
[INFO] [stdout]   12:     0x5ce7ce4866cc - test[fad20673b750c10e]::test_main_inner::<test[fad20673b750c10e]::test_main_static::{closure#0}>::{closure#0}
[INFO] [stdout]                                at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/test/src/lib.rs:155:21
[INFO] [stdout]   13:     0x5ce7ce4f4772 - <alloc[154f689e5dd3bae5]::boxed::Box<dyn for<'a, 'b> core[5a1c3e9896636f3a]::ops::function::Fn<(&'a std[d054f6f42beb1baa]::panic::PanicHookInfo<'b>,), Output = ()> + core[5a1c3e9896636f3a]::marker::Send + core[5a1c3e9896636f3a]::marker::Sync> as core[5a1c3e9896636f3a]::ops::function::Fn<(&std[d054f6f42beb1baa]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/alloc/src/boxed.rs:2291:9
[INFO] [stdout]   14:     0x5ce7ce4f4772 - std[d054f6f42beb1baa]::panicking::panic_with_hook
[INFO] [stdout]                                at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/std/src/panicking.rs:833:13
[INFO] [stdout]   15:     0x5ce7ce4db282 - std[d054f6f42beb1baa]::panicking::panic_handler::{closure#0}
[INFO] [stdout]                                at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/std/src/panicking.rs:698:13
[INFO] [stdout]   16:     0x5ce7ce4d2c19 - std[d054f6f42beb1baa]::sys::backtrace::__rust_end_short_backtrace::<std[d054f6f42beb1baa]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]                                at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/std/src/sys/backtrace.rs:182:18
[INFO] [stdout]   17:     0x5ce7ce4dbf9d - __rustc[7ab284efd7f33ea8]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/std/src/panicking.rs:689:5
[INFO] [stdout]   18:     0x5ce7ce5110ac - core[5a1c3e9896636f3a]::panicking::panic_fmt
[INFO] [stdout]                                at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/core/src/panicking.rs:80:14
[INFO] [stdout]   19:     0x5ce7ce510fc3 - core[5a1c3e9896636f3a]::panicking::assert_failed_inner
[INFO] [stdout]                                at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/core/src/panicking.rs:434:23
[INFO] [stdout]   20:     0x5ce7ce4bf0b6 - core[5a1c3e9896636f3a]::panicking::assert_failed::<bool, bool>
[INFO] [stdout]                                at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/core/src/panicking.rs:394:5
[INFO] [stdout]   21:     0x5ce7ce471f32 - codecrafters_interpreter[72ad71ab8591f61c]::interpreter::vm::mem::tests::test_set_global_bug_confirmation
[INFO] [stdout]                                at /opt/rustwide/workdir/src/interpreter/vm/mem.rs:159:9
[INFO] [stdout]   22:     0x5ce7ce470067 - codecrafters_interpreter[72ad71ab8591f61c]::interpreter::vm::mem::tests::test_set_global_bug_confirmation::{closure#0}
[INFO] [stdout]                                at /opt/rustwide/workdir/src/interpreter/vm/mem.rs:141:42
[INFO] [stdout]   23:     0x5ce7ce474266 - <codecrafters_interpreter[72ad71ab8591f61c]::interpreter::vm::mem::tests::test_set_global_bug_confirmation::{closure#0} as core[5a1c3e9896636f3a]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   24:     0x5ce7ce4797ab - <fn() -> core[5a1c3e9896636f3a]::result::Result<(), alloc[154f689e5dd3bae5]::string::String> as core[5a1c3e9896636f3a]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   25:     0x5ce7ce4797ab - test[fad20673b750c10e]::__rust_begin_short_backtrace::<core[5a1c3e9896636f3a]::result::Result<(), alloc[154f689e5dd3bae5]::string::String>, fn() -> core[5a1c3e9896636f3a]::result::Result<(), alloc[154f689e5dd3bae5]::string::String>>
[INFO] [stdout]                                at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/test/src/lib.rs:724:18
[INFO] [stdout]   26:     0x5ce7ce487025 - test[fad20673b750c10e]::run_test_in_process::{closure#0}
[INFO] [stdout]                                at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/test/src/lib.rs:747:74
[INFO] [stdout]   27:     0x5ce7ce487025 - <core[5a1c3e9896636f3a]::panic::unwind_safe::AssertUnwindSafe<test[fad20673b750c10e]::run_test_in_process::{closure#0}> as core[5a1c3e9896636f3a]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   28:     0x5ce7ce487025 - std[d054f6f42beb1baa]::panicking::catch_unwind::do_call::<core[5a1c3e9896636f3a]::panic::unwind_safe::AssertUnwindSafe<test[fad20673b750c10e]::run_test_in_process::{closure#0}>, core[5a1c3e9896636f3a]::result::Result<(), alloc[154f689e5dd3bae5]::string::String>>
[INFO] [stdout]                                at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/std/src/panicking.rs:581:40
[INFO] [stdout]   29:     0x5ce7ce487025 - std[d054f6f42beb1baa]::panicking::catch_unwind::<core[5a1c3e9896636f3a]::result::Result<(), alloc[154f689e5dd3bae5]::string::String>, core[5a1c3e9896636f3a]::panic::unwind_safe::AssertUnwindSafe<test[fad20673b750c10e]::run_test_in_process::{closure#0}>>
[INFO] [stdout]                                at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/std/src/panicking.rs:544:19
[INFO] [stderr] error: test failed, to rerun pass `--bin codecrafters-interpreter`
[INFO] [stdout]   30:     0x5ce7ce487025 - std[d054f6f42beb1baa]::panic::catch_unwind::<core[5a1c3e9896636f3a]::panic::unwind_safe::AssertUnwindSafe<test[fad20673b750c10e]::run_test_in_process::{closure#0}>, core[5a1c3e9896636f3a]::result::Result<(), alloc[154f689e5dd3bae5]::string::String>>
[INFO] [stdout]                                at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/std/src/panic.rs:359:14
[INFO] [stdout]   31:     0x5ce7ce487025 - test[fad20673b750c10e]::run_test_in_process
[INFO] [stdout]                                at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/test/src/lib.rs:747:27
[INFO] [stdout]   32:     0x5ce7ce487025 - test[fad20673b750c10e]::run_test::{closure#0}
[INFO] [stdout]                                at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/test/src/lib.rs:668:43
[INFO] [stdout]   33:     0x5ce7ce481b84 - test[fad20673b750c10e]::run_test::{closure#1}
[INFO] [stdout]                                at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/test/src/lib.rs:698:41
[INFO] [stdout]   34:     0x5ce7ce481b84 - std[d054f6f42beb1baa]::sys::backtrace::__rust_begin_short_backtrace::<test[fad20673b750c10e]::run_test::{closure#1}, ()>
[INFO] [stdout]                                at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/std/src/sys/backtrace.rs:166:18
[INFO] [stdout]   35:     0x5ce7ce48a0a2 - std[d054f6f42beb1baa]::thread::lifecycle::spawn_unchecked::<test[fad20673b750c10e]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}
[INFO] [stdout]                                at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/std/src/thread/lifecycle.rs:70:13
[INFO] [stdout]   36:     0x5ce7ce48a0a2 - <core[5a1c3e9896636f3a]::panic::unwind_safe::AssertUnwindSafe<std[d054f6f42beb1baa]::thread::lifecycle::spawn_unchecked<test[fad20673b750c10e]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}> as core[5a1c3e9896636f3a]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   37:     0x5ce7ce48a0a2 - std[d054f6f42beb1baa]::panicking::catch_unwind::do_call::<core[5a1c3e9896636f3a]::panic::unwind_safe::AssertUnwindSafe<std[d054f6f42beb1baa]::thread::lifecycle::spawn_unchecked<test[fad20673b750c10e]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/std/src/panicking.rs:581:40
[INFO] [stdout]   38:     0x5ce7ce48a0a2 - std[d054f6f42beb1baa]::panicking::catch_unwind::<(), core[5a1c3e9896636f3a]::panic::unwind_safe::AssertUnwindSafe<std[d054f6f42beb1baa]::thread::lifecycle::spawn_unchecked<test[fad20673b750c10e]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>>
[INFO] [stdout]                                at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/std/src/panicking.rs:544:19
[INFO] [stdout]   39:     0x5ce7ce48a0a2 - std[d054f6f42beb1baa]::panic::catch_unwind::<core[5a1c3e9896636f3a]::panic::unwind_safe::AssertUnwindSafe<std[d054f6f42beb1baa]::thread::lifecycle::spawn_unchecked<test[fad20673b750c10e]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/std/src/panic.rs:359:14
[INFO] [stdout]   40:     0x5ce7ce48a0a2 - std[d054f6f42beb1baa]::thread::lifecycle::spawn_unchecked::<test[fad20673b750c10e]::run_test::{closure#1}, ()>::{closure#1}
[INFO] [stdout]                                at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/std/src/thread/lifecycle.rs:68:26
[INFO] [stdout]   41:     0x5ce7ce48a0a2 - <std[d054f6f42beb1baa]::thread::lifecycle::spawn_unchecked<test[fad20673b750c10e]::run_test::{closure#1}, ()>::{closure#1} as core[5a1c3e9896636f3a]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]                                at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   42:     0x5ce7ce4fb97f - <alloc[154f689e5dd3bae5]::boxed::Box<dyn core[5a1c3e9896636f3a]::ops::function::FnOnce<(), Output = ()> + core[5a1c3e9896636f3a]::marker::Send> as core[5a1c3e9896636f3a]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/alloc/src/boxed.rs:2277:9
[INFO] [stdout]   43:     0x5ce7ce4fb97f - <std[d054f6f42beb1baa]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]                                at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/std/src/sys/thread/unix.rs:118:17
[INFO] [stdout]   44:     0x735fad92baa4 - <unknown>
[INFO] [stdout]   45:     0x735fad9b8a64 - clone
[INFO] [stdout]   46:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout]     interpreter::vm::mem::tests::test_set_global_bug_confirmation
[INFO] [stdout] 
[INFO] [stdout] test result: FAILED. 31 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "9c3fef1a327a17c89db77384186da69a4dee7f2d8b884f1bfc539ba2dfc7727f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "9c3fef1a327a17c89db77384186da69a4dee7f2d8b884f1bfc539ba2dfc7727f", kill_on_drop: false }`
[INFO] [stdout] 9c3fef1a327a17c89db77384186da69a4dee7f2d8b884f1bfc539ba2dfc7727f
